![](/img/trans.png)
[英]Passing json encoded MultiDimensional Array to javascript via onclick event
[英]Passing a JSON encoded PHP array to HTML onclick
我正在尝试填充我的jquery数据表,并且我已经成功做到了。 除非在html标记的javascript函数参数之一中传递JSON编码的字符串时,否则。 我正在使用来自PHP的以下代码。 如下所示,我在onclick部分中函数的最后一个参数上传递了$ update_data变量的json_encode。
$update_data =
array(
array('Page type',array( array('1 - Standard','Standard'), array('2 - HTML','HTML') ),'select','noval'),
array('title',$row->title,'input','val'),
array('header',$row->header,'input','noval'),
array('footer',$row->footer,'input','noval'),
);
$subarray[]='<center> <span data-target="#updatepost'.$row->_id.'" data-toggle="modal" onclick="easy_update(\'update\',\'post\',\'book/update-book-folder-designation\','.$row->_id.',\'Update Pages\',\''.json_encode($update_data).'\')" class="btn fa fa-pencil"></span> </center>';
然后我得到一个错误
未捕获的SyntaxError:无效或意外的令牌
当我从onclick调用函数时。 但是javascript错误行什么也没有指向。
我的JavaScript函数就是
function easy_update(type,method,url,id,header_title,data){
}
我怀疑这与json字符串的格式有关,该格式导致读取我的js函数参数时一团糟,但我不确定。 这是我来自inspect元素的html标记的图像
当我用常规字符串作为参数替换json编码的字符串时,我没有收到任何错误。 我希望我能提供有关该问题的足够信息。
我想您正在尝试将字符串参数用作客户端函数easy_update()
上的JS对象。 尝试发送不带引号的data
,如下所示:
$subarray[]='<center> <span data-target="#updatepost'.$row->_id.'" data-toggle="modal" onclick="easy_update(\'update\',\'post\',\'book/update-book-folder-designation\','.$row->_id.',\'Update Pages\','.json_encode($update_data).')" class="btn fa fa-pencil"></span> </center>';
另外,您还需要替换标记或json_encode()结果中的引号,例如:
$var = str_replace('"', '\'', json_encode($update_data));
然后将其发送给函数,可能的选项之一是:
$encoded = str_replace('"', '\'', json_encode($update_data));
$subarray[]='<center> <span data-target="#updatepost'.$row->_id.'" data-toggle="modal" onclick="easy_update(\'update\',\'post\',\'book/update-book-folder-designation\','.$row->_id.',\'Update Pages\','.$encoded.')" class="btn fa fa-pencil"></span> </center>';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.