0

我有以下 ajax 调用。

我的 addList 变量包含一个字符串:list=Sports&list=Cars&list=Outdoor&new_list=123123

我想在我的 PHP 文件中获取 addList 作为

$_POST['list'] is an array with values Sports, Cars, Outdoor
$_POST['new_list'] is a string 123123

但我无法将 POST 字符串转换为正确的形式。

我可以在两边创建数组/循环,但感觉不对。

有什么方便的方法吗?

jQuery.ajax({  
                    type: "post",  
                    url: ajax_var.url,  
                    data: "action=post-list&nonce="+ajax_var.nonce+"&post_list=&post_id="+post_id+"&" + addList,  
                    success: function(count){  
                        alert("done"); 
                    }  
                }); 

任何帮助将不胜感激。谢谢!

4

3 回答 3

1

尝试使用以下代码。

您只需要找到您的表单 if 和 url 即可将值传递给:

var form = new FormData($('#form_id')[0]);
form.append('view_type','addtemplate');
$.ajax({
type: "POST",
url: "savedata.php",
data: form,
cache: false,
contentType: false,
processData: false,
success:  function(data){
//alert("---"+data);
alert("Settings has been updated successfully.");
window.location.reload(true);
}
});

这将自动传递所有表单元素。

工作和测试的代码。

于 2013-09-29T11:57:57.520 回答
0

当您使用 jQuery 的 ajax 方法传递变量时,您可以像这样传递数组:

jQuery

    var myArray = newArray();
    myArray.push("data1");
    myString = "data2";


    jQuery.ajax({  
         type: "post",  
         url: ajax_var.url,  
         data: {array:myArray, param2:myString},
                  ^name     ^value
         success: function(count){  
             alert("done"); 
         }  
    }); 

PHP

echo $_POST['array'][0]; // data1
echo $_POST['param2']; // data2
于 2013-09-29T11:50:00.807 回答
0

addList将您的变量更改为:

list[]=Sports&list[]=Cars&list[]=Outdoor&new_list=123123

PHP 会将命名的项目解析list[]为一个数组,你会发现值是$_POST['list'][0], $_POST['list'][1],$_POST['list'][2]

于 2013-09-29T11:50:46.563 回答