使用php为dhtmlxscheduler从json编码的字符串中删除双引号

时间:2014-12-11 11:06:31

标签: php jquery json dhtmlx

我需要一些JSON和jquery的帮助。

我使用dhtmlx调度程序开发应用程序。我想动态创建dhtmlx部分。

我使用下面的

中给出的php json_encode函数生成json_encoded字符串
["{key:23, label:'T23 (34)'}","{key:24, label:'T24 (34)'}","{key:26, label:'T26 (26)'}","{key:35, label:'T35 (25)'}"]

的Ajax调用函数
$.ajax({
            url:"updatetablestr.php",
            type:"get",
            data:{id:id},
            dataType: 'json',
            beforeSend:function(){},
            success:function(q)
            {
            var JSONString = JSON.stringify(q);
            var output=JSONString.replace(/\"/g,"");                
            scheduler.updateCollection("MyList",output);
            }
            })

PHP函数是,

$resarray=json_encode($array);
echo preg_replace('/"([a-zA-Z]+[a-zA-Z0-9_]*)":/', '$1:', $resarray);

我使用jquery

删除了第一个和最后一个引号
var JSONString = JSON.stringify(q);
var output =JSONString.replace(/\"/g,"");

在这个jquery代码之后我可以得到我的输出

[{key:23, label:'T23 (34)'}","{key:24, label:'T24 (34)'}","{key:26, label:'T26 (26)'}","{key:35, label:'T35 (25)'}]

这个输出是我需要的。当我使用像

这样的静态代码时
 var output= [{key:23, label:'T23 (34)'}","{key:24, label:'T24 (34)'}","{key:26, label:'T26 (26)'}","{key:35, label:'T35 (25)'}]

正在运作。当我动态实现生成的PHP时,JSON.stringify无法正常工作.. 那个时候它显示以下错误

scheduler.updateCollection("MyList",output);

"未捕获TypeError:Function.prototype.apply:参数列表类型错误" 在dhtmlxschduler.js中

虽然静态使用相同的字符串,但为什么在使用php和jquery动态生成时它不起作用..

0 个答案:

没有答案