Вставить код с вложенными кавычками и апострофами?
У меня есть этот код в моем файле PHP.
var my_edit = "<div title='Edit record: "+ rowObject['my_id'] +"'
onclick=\"jQuery('#grid').jqGrid('editGridRow', '" + options.rowId + "',
{ onInitializeForm : $upload } );\" >Edit</div>";
переменная $upload выглядит примерно так:
$upload = <<<UPLOAD
function (formid) {
alert('I am in UPLOAD!');
$("#cusom_id", formid).button();
// other code with many quotes and apostrophes
}
UPLOAD;
Мой код не работает, так как есть ошибки с кавычками и апострофами.
Как правильно добавить мою функцию $upload в первый фрагмент кода, который я разместил выше?
2 ответа
Вы должны избегать ваших кавычек, и вы должны быть в состоянии использовать addlashes()
$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.
Ну, если честно! Это не сработает должным образом, и это не очень хорошая практика..
Интересно, почему вы используете переменную PHP для вызова функции javascript в $upload, когда вы можете напрямую получить к ней доступ через саму функцию 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>";