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 DE-CIX
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