Вставить код с вложенными кавычками и апострофами?

У меня есть этот код в моем файле 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>";
Другие вопросы по тегам