我有一个包含许多输入的表单,我使用以下代码将所有表单数据发送到php proccesing:
HTML:
<form>
<input type="text" name="a" />
<input type="text" name="b" />
<input type="text" name="c" />
<input type="text" name="d" />
<input type="text" name="e" />
<input type="text" name="f" />
<button type="button" onclick="update()">UPDATE</button>
</form>
<!-- HERE I SHOW THE VALUES FROM ABOVE INPUTS -->
<input type="text" id="a" />
<input type="text" id="b" />
<input type="text" id="c" />
<input type="text" id="d" />
<input type="text" id="e" />
<input type="text" id="f" />
JS:
<script>
function update()
{
var str = $("form").serializeArray();
$.ajax({
type: "POST",
url: "update.php",
data: str,
dataType: 'json',
success: function(result)
{
document.getElementById("a").value = result.a;
document.getElementById("b").value = result.b;
document.getElementById("c").value = result.c;
document.getElementById("d").value = result.d;
document.getElementById("e").value = result.e;
document.getElementById("f").value = result.f;
},
error: function(result){
console.log("Error:");
console.log(result);
}
});
// return false;
}
</script>
AND update.php:
<?php
$a = $_POST['a'];
$b = $_POST['b'];
$c = $_POST['c'];
$a = $_POST['d'];
$b = $_POST['e'];
$c = $_POST['f'];
$arr = array(
'a' => $a,
'b' => $b,
'c' => $c,
'a' => $d,
'b' => $e,
'c' => $f
);
echo json_encode($arr);
?>
第一个问题: 是否有一种简单的方法在PHP中传递所有serialize()变量,而不是像我在代码中那样编写所有这些变量?有太多,我认为我不得不手动添加所有这些。
$a = $_POST['a']; $b = $_POST['b']; $c = $_POST['c']; $d = $_POST['d']; $e = $_POST['e']; $f = $_POST['f'];
是否有一种简短的方法可以在多个输入中从PHP传递ajax结果数组值,而不是使用以下代码?
document.getElementById("a").value = result.a; document.getElementById("b").value = result.b; document.getElementById("c").value = result.c; document.getElementById("d").value = result.d; document.getElementById("e").value = result.e; document.getElementById("f").value = result.f;
所有我想说的是我在表单上有太多输入,我不想手动添加这些变量。它花费了太多时间,很容易误认为是id和名字。
答案 0 :(得分:1)
您可以将表单输入作为数组而不是单个名称传递。含义
<input name='form[a]' type='text'/>
<input name='form[b]' type='text'/>
<input name='form[c]' type='text'/>
<input name='form[d]' type='text'/>
然后在php中执行此操作
echo(json_encode($_POST['form']));