Javascript jQueryAjax表单序列化在第一次提交时不会给出新结果

Javascript jQueryAjax表单序列化在第一次提交时不会给出新结果,javascript,php,jquery,ajax,forms,Javascript,Php,Jquery,Ajax,Forms,使用jquery ajax调用提交数据时遇到问题 下面是我正在使用的jquery ajax调用函数 $(".update-pages").bind('submit',function(){ var urlReq = "perform/update_pages.php?sbmt_change=&" +$(this).serialize(); $.ajax({ method : 'GET', url : urlReq,

使用jquery ajax调用提交数据时遇到问题

下面是我正在使用的jquery ajax调用函数

$(".update-pages").bind('submit',function(){
        var urlReq = "perform/update_pages.php?sbmt_change=&" +$(this).serialize();
       $.ajax({
          method : 'GET',
          url : urlReq,
          success : function(data){
              alert(data);
          }
       });
       return false;
    });
HTML表单为:

<form action="perform/update_pages.php" class="update-pages" method="GET">
    <input type="hidden" value="about" id="getLoc" name="about" />
    <textarea name="txt" rows="20">

    </textarea>
    <br />
    <input type="submit" class="btn btn-primary btn-lg" value="UPDATE" name="sbmt_change" />

</form>
问题:当我提交数据时,
serialize()
发送
textarea
中更改前的旧结果,但当我再次提交时,
serialize()
发送新结果,同样的问题会一次又一次出现。偶数时间提交发送新数据,而奇数时间提交发送旧数据


如何解决此问题?

您好,下面是您代码中的一些更改,请使用下面修改的代码

<form action="" class="update-pages" method="GET">
    <input type="hidden" value="about" id="getLoc" name="about" />
    <textarea name="txt" rows="20">

    </textarea>
    <br />
    <input type="submit" class="btn btn-primary btn-lg" value="UPDATE" name="sbmt_change" />



$(“.update pages”).bind('submit',函数(){
$.ajax({
方法:“POST',//也使用GET
网址:'http://localhost:82/stack/get.php“,//这是文件的完整站点URL
数据:$('.update pages')。序列化(),
成功:功能(数据){
警报(数据);
}
});
返回false;
});
get.php

<?php
  echo "<pre>";
  print_r($_REQUEST);
?>

这是您的代码,我刚刚在我的系统中测试过,它工作正常。每次提交时,我都会得到正确的数据。

<?php 
if (isset($_GET['sbmt_change'])) {
        print_r($_GET);
}else{ // if not form submitted

}
?>

页面标题
$(文档).ready(函数(){
$(“.update pages”).bind('submit',function(){
var urlReq=“server.php?sbmt_change=&”+$(this.serialize();
$.ajax({
方法:“GET”,
url:urlReq,
成功:功能(数据){
警报(数据);
}
});
返回false;
});
})

服务器端代码:



为什么要声明
urlReq
两次?能否向我们展示处理此数据的PHP代码您正在使用的jQuery版本是什么?看起来他已经把问题抛到一边去吃午饭了。怎么annoying@RiggsFolly是的,请回答我为PHP代码编辑的问题。OP显然是个初学者。建议他们修改代码,在端口82上使用
localhost
站点,但他们的代码没有引用域或端口号,这只是误导,不要只是将你的代码作为答案!感谢您的帮助,但这将返回另一个HTML页面的数据,并且不会解决我的问题problem@RiggsFolly这个代码有什么问题?它在我的系统上运行良好。我在回答之前已经测试过了,所以你最好发布其他答案,而不是给出其他答案的意见和评分。谢谢你的建议。但它给我的问题,而奇数时间提交。
<?php
  echo "<pre>";
  print_r($_REQUEST);
?>
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
$(document).ready(function(){
$(".update-pages").bind('submit',function(){
        var urlReq = "server.php?sbmt_change=&" +$(this).serialize();
       $.ajax({
          method : 'GET',
          url : urlReq,
          success : function(data){
              alert(data);
          }
       });
       return false;
    });
})

    </script>
</head>
<body>

<form action="server.php" class="update-pages" method="GET">
    <input type="hidden" value="about" id="getLoc" name="about" />
    <textarea name="txt" rows="20">

    </textarea>
    <br />
    <input type="submit" class="btn btn-primary btn-lg" value="UPDATE" name="sbmt_change" />

</form>
</body>
</html> 
<?php 
if (isset($_GET['sbmt_change'])) {
        print_r($_GET);
}else{ // if not form submitted

}
?>