繁体   English   中英

将JSON编码的PHP数组传递给HTML onclick

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM