我正面临一个问题,我不知道如何在标题中理解,对不起。希望它在文中会更加清晰。
我已经用jquery做了一个很好的ajax帖子。就是这样:
var p1 = $.post(url,{what:"Add",d:dokid,u:seluserid});
p1.done(function(data){
...
现在,要将其复制到另一侧(带有表单),里面有很多单选按钮,我将{}中的部分构建为字符串(paramlist)并尝试执行相同的操作。生成的字符串参数列表:
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:
将字符串转换为对象(在String to object in JS的帮助下) objparamlist=eval('({' + paramlist + '})');
现在正在呼叫
var p1 = $.post(url,objparamlist);
作品。
感谢大家的帮助!
答案 0 :(得分:1)
我就是这样做的.. ..一点推断,但更容易阅读。
$.ajax({
url: "/ajax/url.php",
type: "POST",
data: {
data: JSON.stringify(paramlist)
},
success: function.....
答案 1 :(得分:0)
你可以试试这个:
var p1 = $.post(url,{data: JSON.stringify(paramlist)});
此致