08. maj 2014 - 14:04
Der er
8 kommentarer og 1 løsning
Problem med '\n' og '\n\t' ved XMLHttpRequest
Hej Eksperter Jeg har et problem med '\n' og '\n\t'. Jeg har et object 'data' i javascript som jeg overfører med 'jsondata = "data="+JSON.stringify(data);' i et XMLHttpRequest(). objektet 'data' indeholder blandt andet en tekststreng 'data[text]' hvis værdi f.eks. kunne være '<p>\n\tTekst om arrangementet</p>\n' Når jeg så udfører '$data = json_decode($_POST['data']);' ønsker jeg at gemme tekststrengen i databasen med '\n' og '\n\t' men det kikser. '$data->text' bliver i stedet til '<p> Text om arrangement</p> ' Databasen gemmer altså en streng på 3 linier i stedet for en streng der indeholder '\n' og '\n\t'. Håber nogen kan hjælpe mig. Venligst Christian
Annonceindlæg fra Novataris
Prøv at escape det ved at erstatte \n med \\n osv.
Str_replace ("\n","\\n", $ string)
Når jeg skriver $data = json_decode(Str_replace("\n","\\n",$_POST['data'])); print_r($data); Returnerer min side: stdClass Object ( [action] => modifyarrangement [id] => 1 [name] => Arrangementets navn [start] => 2014-05-06 19:00:00 [end] => 2014-05-08 22:00:00 [visible] => 1 [text] => <p> Tekst om arrangementet</p> ) Det lader ikke til at løse problemet. $data['text'] er stadig 3 linier.
Jeg mener $data->text ikke $data['text'].
Har du prøvet $data->text = Str_replace("\n","\\n",$data->text);??
Tak - Det løste faktisk en del af problemet. Men så alligevel ikke helt. For i databasen (MySQL) bliver \n og \n\t alligevel ikke gemt som tekst hvad enten det nu er et php- el. MySQL problem. UPDATE arrangements SET name = 'Arrangementets navn', start = '2014-05-06 19:00:00', end = '2014-05-08 22:00:00', text = '<p>\n\tTekst om arrangementet</p>\n', visible = 1 WHERE id = 1 LIMIT 1; Har i et forslag?
Der skal du huse at ændre \n til \\n og \t til \\t
Jeg løste problemet mysql_real_escape_string($data->text) Smider du et svar rix17172
Her kom svaret fedt at du fandt ud af det
Vi tilbyder markedets bedste kurser inden for webudvikling