2014-10-02 62 views
0

使用.each编写我的选项字符串并通过.post将其发送到外部脚本。

 clicked.closest("form").find("input,textarea").each(function(){ 
      var input=$(this); 
      if(index==1){ 
       options = "{"+input.attr("name")+":'"+input.val()+"'"; 
      }else if(index==no_inputs){ 
       options += ","+input.attr("name")+":'"+input.val()+"'}"; 
      }else{ 
       options += ","+input.attr("name")+":'"+input.val()+"'"; 
      } 
      index++; 
     }); 
     alert(options); 
     $.post('../pages/ajax/add_orders.php',options,function(data){ 
      alert(data); 
     }); 

..problem是当我的PHP脚本调用是..

<?php 
     print_r($_POST); 
    ?> 

我简单地得到,没有值的空数组。

第一个警报正确显示了公式化字符串。

但第二个返回一个空值。

任何帮助非常感谢。

+0

是你想发送数据请求参数或请求体 – 2014-10-02 16:41:03

+0

你可以只尝试'$。员额(“../页/ AJAX/add_orders.php”, clicked.closest(“form”)。serialize(),function(data){ alert(data); });' – 2014-10-02 16:42:22

+0

不要手动构建JSON! – 2014-10-02 16:46:11

回答

1

你的帖子需要是一个实际的对象,你正在创建一个字符串。

clicked.closest("form").find("input,textarea").each(function(){ 
     var input=$(this); 
     if(index==1){ 
      options[input.attr("name")] = input.val(); 
     }else if(index==no_inputs){ 
      options[input.attr("name")] = input.val(); 
     }else{ 
      options[input.attr("name")] = input.val(); 
     } 
     index++; 
    }); 

我认为上述方法将工作。

0

试试这个:

var options={}; 
clicked.closest("form").find("input,textarea").each(function(){ 
    var input=$(this); 
    options[input.attr("name")] = input.val(); 
});