2016-05-10 3 views
0

注文することができる食品のリストがあります。 「 '」のない名前はうまく動作しますが、Pasqua Nero D'Avola Siciliaなどの名前は機能しません。私は 'with \'を置き換えようとしましたが、それと同じ問題です。次のようにコードは(xはアイテムである)である:あなたのように文字をエスケープする必要がPHP「 '」を含む項目を表示できません

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

'addslashes()'を試したことがありますか? – Jer

+0

いいえ、いずれも機能していないようです。 –

+0

それを試してもよろしいですか?別の解決策は ''をアンダースコアや別の文字に置き換えて、サーバ側でもう一度置き換えることです。 – Jer

答えて

0

使用$アイテム[ '名前'] はhtmlspecialchars(内側)機能

htmlspecialchars($item['name'])

0

'属性内の競合。あなたのニーズに

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

用法:

$('#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>"); 

注:あなたのphpとhtmlの文字セットがUTF-に設定されている両方の確保ここ

は、安全に食品名をエスケープするために使用できる機能です8

関連する問題