我通过 JS Event 捕获更改字段的值并将该数据捕获到 temp1 数组中,例如,如果您更改字段名称"name",那么它将获取字段名称"id"并将其存储到 temp1 中。 但主要问题是如何将这个数组传递给 PHP 表单处理页面, 我可以在哪里获得此 temp1 的值。
我尝试使用JSON,但它对我没有帮助。
我尝试的代码是:$.post('/somepage.php',temp1);但它没有用。
请帮我解决这个问题。
我在页面中包含jQuery.js lib。
<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>
这个问题对我来说看起来很简单,请尝试以下代码并让我知道结果。
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']));
?>
你需要的是:
$.post("/somepage.php", { 'temp1[]': temp1 });
在官方文档中也可以看到这里,有各种数据的示例。
更改存储更改的方式。如果将字段 ID 存储为对象键(例如 temp1["username"] = true
),您可以轻松地使用 $.post("/somepage.php", temp1)
并通过 PHP 中的$_POST["username"]
等读取值。