2016-07-07 14 views
0

Ich versuche, ein Problem zu umgehen, indem ich Daten von mysql lese und sie an meine Seite über php weiterleite. Meine Aufgabe ist es, aus mysql gelesene Daten direkt in eine js-Funktion einzufügen. Der Code ist:json_encode fügt doppelte Anführungszeichen anstelle von Leerzeichen ein

while($row = $query_ope->fetch_assoc()){ 
    $data = array("str_id" => $row['Id'], 
       "str_rag_sociale" => $row['Rag_Sociale'], 
       "str_indirizzo" => $row['Indirizzo'], 
       "att_luogo" => json_decode($row['Comune']), 
       "str_cap" => $row['Cap'], 
       "str_reparto" => $row['Reparto'] 
       ); 
    $content .= '<tr class="cal_body">'. 
       <td class="btn_icon icon icon-setup" onclick=modUt('.json_encode($data).')></td>'. 
       '</tr>'; 

Das Problem ist jetzt, dass Daten von db Feldern, die Räume im Innern enthält (zum Beispiel, wenn $ row [ 'Comune'] = "some text") analysiert wird, wie folgt:

setzen ein Anführungszeichen nach dem ersten Wort einige, und das ist ein Problem, weil meine js-Funktion fehlschlagen. Ich werde verrückt versuchen zu verstehen, warum.

+1

kodieren Wenn Comune ist 'einige Text' warum Sie' json_decode laufen() 'auf sie? – Devon

+0

Schauen Sie sich die Code-Hervorhebung an. Sie vermissen ein ''' – RiggsFolly

+0

AJAX wäre wahrscheinlich einfacher – RiggsFolly

Antwort

2

Sie zu html haben Ihre HTML-Attribut

$content .= '<tr class="cal_body"> 
      <td class="btn_icon icon icon-setup" onclick="'.htmlspecialchars('modUt('.json_encode($data).')').'"></td>'. 
      '</tr>'; 
+0

Hallo und danke, wirklich. Ich habe versucht, wie Sie mir empfehlen und es funktioniert! Ich habe verstanden, was meine Schuld war. Denkst du, ich bin der richtige Weg, um Daten aus db zu lesen, oder sollte ich besser codierte Daten schreiben und sie dann ohne spezielle Funktionen (wie htmlspecialchars) lesen? Tschüss –

+0

Ich glaube nicht, dass es eine gute Idee ist, Ihre Daten in der Datenbank zu kodieren, kodieren Sie, wann und wo es codiert werden muss. – Musa