2016-05-10 5 views
0

Ich habe eine Liste von Lebensmitteln, die ausgewählt werden können, um bestellt werden. Namen ohne "'" funktionieren aber gut, Namen wie Pasqua Nero D'Avola Sicilia funktionieren nicht. Ich habe versucht, "mit" zu ersetzen, aber immer noch das gleiche Problem. Der Code ist wie folgt (x Artikel):PHP Kann keine Artikel mit "'" in ihnen anzeigen

  var newRow = "<tr><td>"+x+"</td><td>€"+y.toFixed(2)+"</td><td><input type=\"button\" onclick=\"subtract("+y+")\" value = \"X\"></td></tr>" 
+0

Haben Sie 'addslashes()' ausprobiert? – Jer

+0

Nein, keiner von ihnen scheint zu funktionieren. –

+0

Könnten Sie das versuchen? Eine andere Lösung würde das "" mit einem Unterstrich oder einem anderen Zeichen ersetzen und dann auf der Serverseite wieder ersetzen. – Jer

Antwort

0

Verwenden $ item [ 'name'] innerhalb htmlspecialchars() Funktion

htmlspecialchars($item['name'])

0

Sie müssen die Zeichen als die entkommen Konflikte innerhalb von Attributen.

Hier ist eine Funktion, die Sie Lebensmittel-Namen verwenden können, sicher zu entkommen:

function jsattrencode($x){ 
    $x=htmlentities(htmlspecialchars($x,ENT_QUOTES,'UTF-8',false),ENT_QUOTES,'UTF8');  
    return $x; 
} 

Nutzung für Ihre Bedürfnisse:

$('#item').append("<tr style='font-size: 16px;'><td><a href='#' onclick=\'addItem(\"<?php echo jsattrencode($item['name']);?>\",<?php echo jsattrencode($item['price']);?>)\'><?php echo $item['name'];?></td><td>&euro;<?php echo $item['price'];?></a></td></tr>"); 

Hinweis: sicherstellen, sowohl Ihre PHP und HTML charsets gesetzt sind UTF- 8