我見過無數帖子關於如何做到這一點,要麼在php中使用rawurlencode
,要麼在javascript中使用decodeURIComponent
,或者只使用json_encode
。兩者都不適合我。希望有人能看到我在做什麼錯:將值從PHP傳遞到Javascript變量
我有一個HTML按鈕這樣的:
<button id="editbutton" onClick='edit(this, "<?php echo htmlentities($_SERVER['REQUEST_URI']); ?>", "<?php echo $result_cameras[$i]["camera_type"]; ?>", "<?php echo rawurlencode($result_cameras[$i]["camera_name"]); ?>")'>Edit</button>
我傳遞到JavaScript的編輯按鈕:
var edit = function(t, to, cameratype, cameraname, cameraquality, camerahash, camerastatus, emailnotice, camerasensitivity, axisuser, axispass, axisip, axisport)
{
if (mydiv.find("form").length) {
mydiv.show();
} else {
// fields
var $myform = $("<form id='EditCameraForm' name='' method='post' action='" + to + "'></form>");
var $myfieldset = $("<fieldset><legend>Edit camera settings</legend></fieldset>");
var $myinput = $('<input/>').attr('type','hidden').attr('name','camera_type').val(cameratype);
var $mylabel = $("<label for='CameraName'>Camera name: </label>");
var $myinput2 = js('<input/>').attr('size','25').attr('name','camera_name').attr('id','CameraName').val(decodeURIComponent(cameraname));
$myform.append($myinput, $mylabel, $myinput2);
...
}
...
}
我試着使用rawurlencode/decodeURIComponent作爲上面,當我點擊編輯按鈕,如果相機名稱被調用:a"a
(只測試報價)我得到a"a
。反斜線如a\b
只是返回一些奇怪的字符。
如果我嘗試:
<?php echo json_encode($result_cameras[$i]["camera_name"]); ?>
,不要把任何JavaScript代碼中我得到這個錯誤:
missing) after argument list
edit(this, "/dashboard", "WEBCAM", ""a"a"", "0", "3dd10c49784e2207de1e1932958bfb...
當它指向了 「」 一「a」。
有什麼建議嗎?
我申請這一點,它給了同樣的錯誤我介紹時,我使用json_encode? – Tom 2012-03-23 21:24:26
@Tom:你是否將所有三次出現改爲'addslashes'? – Jon 2012-03-23 21:25:55
是的,同樣的錯誤。 – Tom 2012-03-24 11:50:32