2014-02-21 23 views
0

我在我的PHP文件中有這段代碼。嵌入引號和撇號注入代碼?

var my_edit = "<div title='Edit record: "+ rowObject['my_id'] +"' 
onclick=\"jQuery('#grid').jqGrid('editGridRow', '" + options.rowId + "', 
{ onInitializeForm : $upload });\" >Edit</div>"; 

變量$上傳是這樣的:

$upload = <<<UPLOAD 

    function (formid) { 

     alert('I am in UPLOAD!'); 
     $("#cusom_id", formid).button(); 
     // other code with many quotes and apostrophes 

    } 

UPLOAD; 

我的代碼不工作,因爲有引號和撇號的錯誤。

什麼是將我的$ upload函數注入上面貼出的第一個剪切代碼的正確方法?

回答

0

嗯,說實話!這是不會正常工作,這不是一個好的做法..

我不知道爲什麼你使用PHP變量來調用$上傳的JavaScript函數,當你可以通過JavaScript函數本身直接訪問它!

例如...

function myUpload (formid) { 

    alert('I am in UPLOAD!'); 
    $("#cusom_id", formid).button(); 
    // other code with many quotes and apostrophes 

}

var my_edit = "<div title='Edit record: "+ rowObject['my_id'] +"'onclick=\"jQuery('#grid').jqGrid('editGridRow','" + options.rowId + "', {onInitializeForm : myUpload(formid) });\" >Edit</div>"; 
+0

你好,我很欣賞你回覆,儘管此代碼是複雜的PHP + MySQL + Javascript項目的一部分。引用的代碼是PHP文件的一部分 –

1

你需要逃避你的報價,你應該能夠使用addslashes()

$upload = <<<UPLOAD 
function (formid) { 
    alert('I am in UPLOAD!'); 
    $("#cusom_id", formid).button(); 
    // other code with many quotes and apostrophes 
} 
UPLOAD; 
$upload = addslashes($upload); 
// now you can embed it in the string my_edit.