我使用验证码保护我的表单,以防止使用漫游器提交大量的表单。 此表单可与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
是否有更好的方法将新代码发送回输入字段?
注意:我已经测试过$ _SESSION ['capcode3']是否会更改其值为正值。
答案 0 :(得分:0)
您没有在ajax
中指定成功处理程序。 Ajax是异步处理的,因此需要回调到成功处理请求后将数据传递到的地方
$.ajax({
type: "POST",
url : "data/newpass.php/",
success: function(data) {
//change UI here
document.getElementById("captcha").value = data;
},
});
答案 1 :(得分:-1)
请在ajax成功后添加代码,因为可能会在ajax成功时更改会话值。
$.ajax({
type: "POST",
url : "data/newpass.php/",
data : form_data,
success :function(data){
document.getElementById("captcha").value = data;
}
});
请尝试这个。