Ich habe den folgenden Code:Übergeben Sie eine Zeichenfolge in eine JavaScript-Funktion alle in PHP - Wie richtig zu entkommen?
echo '
<td>
<input type="button" name="delete" value="X" onclick="clearSelection(this.form, '.$type.');this.form.submit();" />
</td>'
;
Das Problem ist, dass ich nicht eine Zeichenfolge an die clearSelection()
Javascript-Funktion, weil $type
Bedürfnisse in Klammern sein passieren kann.
Ich versuchte es mit Backslash, u0222, mehrere Zitate und so weiter, aber nichts brachte mich zur Lösung.
Lösung:
$type = json_escape_string($type);
$raw_text = "clearSelection(this.form, $type); this.form.submit();";
$escaped_text = htmlspecialchars($raw_text);
echo '<td><input type="button" name="delete" value="X" onclick="'.$escaped_text.'" /></td>';
function json_escape_string($str){
$str = strtr($str, array('\\'=>'\\\\',"'"=>"\\'",'"'=>'\\"',"\r"=>'\\r',"\n"=>'\\n','</'=>'<\/'));
return "'".$str."'";
}
Was ist, wenn 'json_encode()' ist nicht verfügbar? 'Aufruf zu undefinierter Funktion json_encode()'. PHP v. 5.2.9. OK, es scheint, dass es ohne 'json_encode()' funktionieren würde. – testing
Aktualisierte Antwort mit einer alternativen Funktion – Cal
Wenn ich Ihre Funktion verwende, bekomme ich '' clearSelection (this.form, \ 'products \'); this.form.submit(); ''im onclick-Attribut (' onlick = "" '). Und das scheint nicht zu funktionieren. – testing