Я пытаюсь передать массив данных из php в java-скрипт для события «onclick». Я делаю это, преобразовывая данные массива в строку JSON, чтобы проанализировать его обратно в js-функции и работать с ним.Передача php-строки JSON (с qoutes) в функцию onclick
Проблема заключается в том, что строка JSON содержит двойные кавычки, поэтому возникает ошибка, так как двойные кавычки разбивают строку html (Uncaught SyntaxError: Unexpected token ILLEGAL). Я видел несколько вопросов, подобных этому, но не нашел решения для того, что мне нужно, или, может быть, я не понял правильного решения. Поэтому я рассказываю об этом с моим конкретным случаем.
<?php
..some php code here..
$aData = array("You","Me",76,array(3,6));
$sJSONstr = json_encode($aData);
?>
<input type="button" name="formSubmit" value="Delete" onclick="analyze('<?php echo $sJSONstr; ?>')">
<?php
..some php code here..
?>
и функция JS выглядит следующим образом:
function analyze(i_sInputDataJSONStr)
{
var aInputData = JSON.parse(i_sInputDataJSONStr);
.. So something with the input data array..
}
Как вы можете так выразиться? в 'onclick =" анализировать (' php echo $ sJSONstr;?>') "' он уже дает одну цитату внутри 'onclick()' –
Спасибо, но мне также нужны одинарные кавычки вокруг php echo $ sJSONstr ; ?>, чтобы он был строкой, а не объектом. Итак, как мне это сделать? – user3198805
@ Kannan, пожалуйста, см. Мой обновленный ответ. Поскольку его данные JSON, нет необходимости ставить его в виде строки (и разбора ее снова). –