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