我正面临一个问题,我不知道如何在标题中描述理解,抱歉。希望在课文中能讲得更清楚。
我已经用jquery做了一个ajax帖子,工作得很好。是这样的:
var p1 = $.post(url,{what:"Add",d:dokid,u:seluserid});
p1.done(function(data){
...
现在,复制的另一边(与表单)有很多单选按钮在里面,我在{}构建的部分作为一个字符串(参数列表),并试图做同样的。结果字符串参数列表:
paramlist = {what:"insert",ID:"-1",Name:"",Beschreibung:"",FieldX:"4",FieldY:"4",Roles:"4",FieldZ:"4",FieldN:"4"}
我通过浏览每个单选元素获得了FieldNames和Values。
现在我正在调用。post:
var p1 = $.post(url,paramlist);
p1.done(function(data){
...
这似乎不是这样工作的,因为我的php无法识别post参数。
$what=$_POST['what'];
给了我PHP通知:未定义的索引:什么…显然我必须把字符串转换成别的东西。但如何?我现在没有搜索词了,所以我想问一下。jquery api对我没有帮助。也许我在这方面太新手了…什么好主意吗?
我做了什么让它工作:删除字符串中的{}括号,并将所有元素放入"。现在paramlist看起来像:
paramlist = "what":"insert","ID":"-1","Name":"","Beschreibung":"","FieldX":"4","FieldY":"4","Roles":"4","FieldZ":"4","FieldN":"4"}
然后使用eval将字符串转换为对象(在JS中使用string to object的帮助):
objparamlist=eval('({' + paramlist + '})');
现在调用
var p1 = $.post(url,objparamlist);
。
感谢大家的帮助!
我就是这样做的.. ..有点外推,但更容易阅读。
$.ajax({
url: "/ajax/url.php",
type: "POST",
data: {
data: JSON.stringify(paramlist)
},
success: function.....
你可以试试:
var p1 = $.post(url,{data: JSON.stringify(paramlist)});
对