2012-04-17 128 views
0

我通過JS Event獲取已更改字段的值,並將該數據捕獲到temp1數組中,例如,如果您更改字段名稱「name」,那麼它將獲得字段名稱「id」並且將它存儲到temp1中。但主要問題是我怎樣才能將這個數組傳遞給一個php表單處理頁面,在那裏我可以得到這個temp1的值。將JS數組傳遞給PHP頁面

我試過使用JSON,但它並沒有幫助我。

我試過的代碼是:$ .post('/ somepage.php',temp1);但它沒有工作。

請幫我解決這個問題。

我在頁面中包含jquery.js庫。

<script type="text/javascript"> 
    var temp1 = new Array(); 

    function onChangeTest(changeVal) 
    {  
//alert("Field u changed was: " + changeVal.id) 

temp1.push(changeVal.id); 

tmsg = "Fields u changed so far are:" 
for(var i=0;i<temp1.length;i++) 
{ 
//document.write("<b>temp1["+i+"] is </b>=>"+temp1[i]+"<br>"); 
tmsg = tmsg + " " + temp1[i]; 
} 
alert(tmsg); 
} 
//$.post('/somepage.php', temp1); 
</script> 
+0

我猜的jQuery期望param對象(可能包含數組)而不是數組作爲ajax參數。 – Bergi 2012-04-17 07:16:19

+0

運行腳本並檢查Firebug響應時,在輸出到somepage.php中的'var_dump($ _ REQUEST);'是什麼? – powtac 2012-04-17 07:16:42

回答

1

這個問題看起來很簡單,對我來說,嘗試下面的代碼,讓我知道結果..

function onChangeTest(changeVal) 
{ 
    //alert("Field u changed was: " + changeVal.id) 
    var temp1 = new Array(); 
    temp1.push(changeVal); 

    tmsg = "Fields u changed so far are:" 
    for(var i=0;i<temp1.length;i++){ 
     //document.write("<b>temp1["+i+"] is </b>=>"+temp1[i]+"<br>"); 
     //tmsg = tmsg + " " + temp1[i]; 
     var newHidInp = document.createElement('input'); 
     newHidInp.type = 'hidden'; 
     newHidInp.name = 'outArray[]'; 
     newHidInp.value = temp1[i]; 
     document.frm.appendChild(newHidInp); 
    } 
    return false; 
} 

HTML:

<form name="frm" action="" method="POST" > 
    <tr> 
<td><font color="red">*</font>Name:<input type="text" name="name" id="name" size="25" onkeyup="onChangeTest('name')" /></td> 
<td><font color="red">*</font>Age<input type="text" name="age" id="age" size="25" onkeyup="onChangeTest('age')" /> 
<input type="submit" name="submit" value="SUBMIT"> 
</td> 
</form> 
</body> 
</html> 

PHP:

<?php 
print("<pre>"); 
print_r(array_unique($_POST['outArray'])); 

?> 
+0

thanx a ton !!!像魅力一樣工作 – 2012-04-17 13:40:23

1

你需要的是:

$.post("/somepage.php", { 'temp1[]': temp1 }); 

在這裏看到的official documentation爲好,有各類數據的例子。

+0

它幫助我學了很多東西,謝謝你的鏈接.. :) – 2012-04-17 13:40:51

0

更改存儲更改的方式。如果您將字段ID存儲爲對象密鑰(例如temp1["username"] = true),則可以輕鬆使用$.post("/somepage.php", temp1)並通過$_POST["username"]等在PHP中讀取值。