我有一个js文件可以正常工作
$(document).ready( function() {
$(".btn-save").click( function() {
var1 = $("#var1").val();
var2 = $("#var2").val();
var3 = $("#var3").val();
var4 = $("#var4").val();
var5 = $("#var5").val();
$.post("json.test.php",
{
"var1" : var1,
"var2" : var2,
"var3" : var3,
"var4" : var4,
"var5" : var5
},
function(data)
{
if(data.type == "success") {
if(data.data == "saved") {
...
}
self.close();
}
if(data.type == "error") {
alert("Error: " + data.message);
}
},
"json"
);
});
});
它工作正常,脚本json.test.php接收所有5个变量
@$var_php = $_POST["var1"];
现在,我在表单中添加了另一个字段,我只是添加到javascript js程序
var6 = $("#var6").val();
并张贴为
"var5" : var5
在我做了这些更改之后,在Safari中程序json.test.php接收所有6个变量ok,但在Firefox 11中只接收前5个具有正确值的变量,但对于var6总是收到Null。
你知道为什么在Safari中工作正常,而不是在Firefox 11中。为什么在Firefox 11中前5个变量的工作正常但是如果我添加更多呢?
答案 0 :(得分:0)
我无法在Firefox 11中重新生成错误,但序列化表单值可能是一种解决方法。当你处理表单输入时,至少这是一个更好的方法。
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready( function() {
$("#myform").submit(function(event) {
event.preventDefault(); //Prevents refreshing page on form submit
$.post("test.php", $("#myform").serialize(),
function(data) {
$('#target').html(data);
});
});
});
</script>
</head>
<body>
<form id="myform">
<input type="text" id="var1" name="var1" size="1" maxlength="1" />
<input type="text" id="var2" name="var2" size="1" maxlength="1" />
<input type="text" id="var3" name="var3" size="1" maxlength="1" />
<input type="text" id="var4" name="var4" size="1" maxlength="1" />
<input type="text" id="var5" name="var5" size="1" maxlength="1" />
<input type="text" id="var6" name="var6" size="1" maxlength="1" />
<input type="submit" value="Submit" />
</form>
<div id="target">
</div>
</body>
</html>
并且test.php:
<?php
for ($i=1; $i<=6; $i++){
echo $_POST["var".$i];
}
?>