2014-10-02 25 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(); 
});