Parsing php string in jquery

时间:2017-07-17 作者:Sadia Mehjabin

我使用serialise发送php数组,但响应不同。这是我的尝试

$array = serialize($out);
var_dump(serialize($array));
//string(58) "s:50:"a:2:{s:9:"sidebar-1";i:5;s:12:"footer-insta";i:2;}";"
我发送此值的方式,

echo \'<div data-ad = \'.$array.\' class="ash_loadmore"><span>LOAD MORE</span></div>\';
当我使用ajax发送序列化值时,ajax响应给我的值,

string(54) "a:2:{s:9:\\"sidebar-1\\";i:5;s:12:\\"footer-insta\\";i:2;}"
我需要精确的值,因为我已再次取消序列化以使其成为数组。为什么会有额外的\\ 输出不同。

3 个回复
最合适的回答,由SO网友:ashraf 整理而成

嗯,似乎@JacobPeattie提到要使用json,我只是附和一下。

第一个json编码变量$array = json_encode($out);

然后发送此值echo \'<div data-ad = \'.$array.\' class="ash_loadmore"><span>LOAD MORE</span></div>\';

要得到它echo json_encode($_POST[\'ad\'])

我想就是这样了。顺便说一句,您现在没有字符串问题,因为输出将如下所示{"footer-insta":2,"sidebar-1":3} 你看它被{}

SO网友:CodeMascot

嗯,这个\\ 正在添加以逃避". 例如,您正在存储整个字符串"sidebar-1". 请注意,字符串包含opening" 同时关闭". 现在,字符串也用另一个"", 因此,用于分离开口" 和关闭" 正在添加\\ 为了逃避它。这样,它就隐藏了解析"" 将存储的字符串转换为实际引号。

SO网友:Arkadiusz Bartnik

最简单、问题最少的解决方案:

$array = json_encode($out);
var_dump(array); // string "{\\"sidebar-1\\":5,\\"footer-insta\\":2}"
在JS中,您可以使用:

JSON.parse("{\\"sidebar-1\\":5,\\"footer-insta\\":2}")
你有一个有数据的对象

结束

相关推荐

基于JS变量创建自己的短码回显php变量

我正在尝试创建一个简单的快捷码,它允许我在页面上显示一个下拉列表,并根据所选选项显示特定的联系人表单。后端的短代码:[formularze form=\"561,559,560\" name=\"Form 1, Form 2, Form 3\"]“form”属性是联系人表单7 ID,“name”属性是下拉列表的名称。代码:function formularze_func( $atts ) { $a = shortcode_atts( array( \'form\' => \'