AJAX-PHP如何将变量返回到原始AJAX脚本并更改输入值

AJAX-PHP如何将变量返回到原始AJAX脚本并更改输入值,php,html,ajax,Php,Html,Ajax,我用验证码保护我的表单,以防止使用bot提交一批又一批表单。 此表单使用AJAX,不会像通常那样刷新页面。 我现在把一切都准备好了,一切都正常。但是 这就是我所说的帮助理解的形式 当您单击请求新密码时,我需要在输入字段中更改代码。 在newpass.php中请求这样的密码后,我确实更改了代码 $_SESSION['capcode3'] = $capcode3; 这是我的javascript代码: <script> $("#formoid").submit(function(

我用验证码保护我的表单,以防止使用bot提交一批又一批表单。 此表单使用AJAX,不会像通常那样刷新页面。 我现在把一切都准备好了,一切都正常。但是 这就是我所说的帮助理解的形式

当您单击请求新密码时,我需要在输入字段中更改代码。 在newpass.php中请求这样的密码后,我确实更改了代码

$_SESSION['capcode3'] = $capcode3;
这是我的javascript代码:

<script>
    $("#formoid").submit(function(event) {
      event.preventDefault();
      var form_data = $(this).serialize(); //Encode form elements for submission

      $.ajax({
            type: "POST",
            url : "data/newpass.php/",
            data : form_data 
        });
      document.getElementById("captcha").value = "<?php echo $_SESSION['capcode3']; ?>";
    });
</script>
因此,通过使用document.getElementById,它将更改输入值,但不会设置新值,而是设置旧值。 因此,如果代码为ABC123,新代码为DEF456,则不会更改为DEF456

有没有更好的方法将新代码发送回输入字段


注意:我已经测试了$\u SESSION['capcode3']是否会改变它的值,结果是肯定的。

请在ajax成功中添加代码,因为ajax成功时可能会改变会话值

  $.ajax({
        type: "POST",
        url : "data/newpass.php/",
        data : form_data,
        success :function(data){
           document.getElementById("captcha").value = data;
        }
    });

请尝试此操作。

您没有在ajax中指定成功处理程序。Ajax是异步处理的,因此当请求成功处理时,需要回调数据将被传递到何处

  $.ajax({
        type: "POST",
        url : "data/newpass.php/",
        success: function(data) {
             //change UI here
             document.getElementById("captcha").value = data;
        },
    });

仅在最初从服务器加载包含此JS代码的资源时执行一次。您可以随心所欲地更改会话的内容,这不会更改输入字段的值,因为JS代码中的值永远不会更改。您应该首先阅读,以了解您目前似乎缺少的内容。您发出AJAX请求的PHP脚本应该返回此值,然后您应该在AJAX调用的成功处理程序中使用此值更新表单字段。同样的问题-只执行一次,所以这部分代码保持静态。