1

我有一个运行良好的 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 个变量,但在 Firefox 11 中只接收具有正确值的前 5 个变量,但对于 var6 始终接收 Null 。

你知道为什么在 Safari 中工作正常而不在 Firefox 11 中工作正常。还有为什么在 Firefox 11 中前 5 个变量工作正常,但如果我添加更多变量就不行?

4

1 回答 1

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];
} 
?>
于 2012-04-15T03:43:09.243 回答