使用ajax调用将数组和单个字符串传递给php文件

时间:2011-10-18 18:25:22

标签: javascript ajax

我尝试实现以下代码

 var flag = new Array();
 var name = $("#myselectedset").val();      
$.ajax({
    type:         'post',
    cache:         false,
    url:          'moveto.php',
    data:     {'myselectset' : name,
              'my_flag' : flag
              },
    success: function(msg){
                     $("#statusafter").ajaxComplete(function(){$(this).fadeIn("slow").html(msg)});
                      }     
          });       

你可以看到名字是一个字符串而且标志是arry,我使用正确的格式传递它们抛出ajax调用,任何人都可以帮助我,谢谢

2 个答案:

答案 0 :(得分:1)

在POST请求中传递数组是不可能的。只有字符串。

您需要对数组进行字符串化,或者考虑将其作为JSON发布。

答案 1 :(得分:0)

你应该可以做一些非常简单的事情,比如用“

”替换你的“数据”属性
data : JSON.stringify( { myselectset : name, my_flag : flag } )

这会将数据转换为JSON字符串,您可以使用json_decode($ _ POST [“my_flag”])将其转换为PHP;

非常重要的说明:

要使JSON.stringify起作用,数组中不能有任何函数 - 甚至不是作为对象方法的函数。

此外,因为这是一个快速示例,请确保您正在测试空数据和所有其他最佳实践。