2013-01-24 80 views
0

不被路過的表單變量或使用阿賈克斯()

否則當HTTP POST動作的var_dump($ _ POST) ;產生一個空數組。

對此提出建議?我做了什麼錯誤......這是一個簡單的概念 - 有人esle發佈了類似的問題,但沒有人迴應,他的解決方案是在表單中添加一個id,我已經有了這個,所以它沒有解決我的問題。

目前我正在查看firebug中的返回頁面內容 - 我還沒有做任何事情,因爲我無法獲取數據到服務器......(首先是第一件事)。

我的HTML

<script type="text/javascript"> 
$(document).ready(function(){ 
    $("#myform").submit(function() { 
     $.ajax({ 
      type: "POST", 
      dataType: "html", 
      cache: false, 
      url: "x.php", 
      success: function(data){    
       //...tell user there was success... 
      }, 
      error: function(data){ 
       //...tell user thre was a problem... 
      } 
     }); 
     return false; 
    });  
}); 
</script> 

<form name="myform" id="myform" action="" method="POST"> 
    <label for="name" id="name_label">x: </label> 
    <input type="text" name="x" id="x" size="30" value=""/> 
    <input type="submit" name="submit" value="Submit"> 
</form> 
<div id="results"><div> 

這裏是(x.php)PHP代碼 - 概念很簡單的證明......

<?php 
var_dump($_GET); 
var_dump($_POST); 
var_dump($_REQUEST); 
?> 

響應看起來像這樣

array(0) {} 
array(0) {} 
array(1) { 
    ["PHPSESSID"]=> 
    string(26) "e1j18j..." 
} 
+1

你在POST操作? – Blender

+0

表單「myform」,文本字段「x」.... – jpmyob

+0

更好地使用'$ .post()'直接。 –

回答

5

您沒有通過任何職位data在ajax ca LL,嘗試

$.ajax({ 
     type: "POST", 
     dataType: "html", 
     cache: false, 
     url: "x.php", 
     data: $(this).serialize(), 
     success: function(data){    
      //...tell user there was success... 
     }, 
     error: function(data){ 
      //...tell user thre was a problem... 
     } 
    }); 
+0

它做到了 - 謝謝。 – jpmyob

1

你需要序列化形式:

$.ajax({ 
     type: "POST", 
     data: $(this).serialize(), 
     cache: false, 
     url: "x.php", 
     success: function(data){    
      //...tell user there was success... 
     }, 
     error: function(data){ 
      //...tell user thre was a problem... 
     } 
    }); 

沒有data,你是不是送你的POST請求任何東西。

0

你可以像下面這樣做

$(document).ready(function(){ 
    $("#myform").submit(function() { 
     $.ajax({ 
     type:'POST', 
     data:'xname='+$("#x").val(), 
     url:'SOMETHING.php', 
     success:function(data){ 
      //Do something with the returned data 
     } 
     }); 
    }); 
}); 

而在PHP文件

echo $_POSST['xname']; 

希望這有助於