Php 发布AJAX更新
我正在尝试使用AJAX和POST提交密码更改 正常情况下,我可以使其正常工作,如果密码更改完成且无错误,它只返回一个空白的白色页面(这没有Ajax)。我正在尝试在一个小div中进行整个密码更改,然后将随响应更新(成功或不成功) 我减少了大部分代码,以便消除可能出现的问题:Php 发布AJAX更新,php,jquery,ajax,Php,Jquery,Ajax,我正在尝试使用AJAX和POST提交密码更改 正常情况下,我可以使其正常工作,如果密码更改完成且无错误,它只返回一个空白的白色页面(这没有Ajax)。我正在尝试在一个小div中进行整个密码更改,然后将随响应更新(成功或不成功) 我减少了大部分代码,以便消除可能出现的问题: <div id="s-window"> <form id="changepassword" action="changePassword.php" method="POST">
<div id="s-window">
<form id="changepassword" action="changePassword.php" method="POST">
<input type="password" name="currentPassword" placeholder="Current Password"/>
<input type="password" name="newPassword" placeholder="New Password"/>
<input type="password" name="confirmPassword" placeholder="Confirm Password"/>
<input class="button" type="submit" value="Change Password" />
</form>
</div>
我没有使用jQuery的经验,我的谷歌搜索也没有产生任何足够相似的结果,我可以从中构建。您得到一个空白白页的原因是
表单
元素提交
事件在单击按钮
后仍在触发。为了防止这种情况,更好的模式是将代码挂接到submit
事件,而不是单击按钮。试试这个:
$("#changepassword").submit(function(e) {
e.preventDefault(); // stop normal form submission
$.ajax({
url: "changePassword.php",
type: "POST",
data: $(this).serialize(), // you also need to send the form data
dataType: "html",
success: function(html) {
$("#s-window").append(html);
}
});
});
请注意,PHP代码仅在提供的密码不匹配时返回字符串值。您可能希望更改该行为,以便最终用户也知道操作何时成功完成。结果显示在
changepassword.php
页面中
然后在一个变量中将输出回显为“已更新”或“未更新”
作为响应,您可以添加一张支票
与resp
在成功函数中
这是什么
if(resp=='updated')
{
alert('password has been updated');
}
if(resp=='notupdated')
{
alert('password not updated,plz try again');
}
希望这有帮助…问题很少。
1.您需要将按钮类型更改为submit to button。因为按钮类型提交总是提交表单。
2.Javascript代码如下所示:
$(“.button”)。单击(函数(){
}));
})
您没有将任何
数据设置为与请求一起发送,这意味着什么?我该怎么做呢?为了熟悉您尝试使用的方法,我可以推荐“我打开了API页面”。那里的信息太多了,没有用处。我不知道哪些是必需的,哪些是额外的,就像需要一杯水,有人递给你一个游泳池。唯一需要的参数是url
其余的都是可选的,因为它们都有默认值。实际上发送数据也很好:)@TrueBlueAussie谢谢,我今天连树都看不见了!:)+仍然返回空白空白页。我希望只更新div,而不是刷新整个页面。这段代码应该可以帮你做到这一点。您是否已检查控制台是否有任何错误?JSON数据类型不是必需的。它可能更具语义,但肯定不是必需的,也不会影响表单提交时的重定向问题。我同意你的观点,因为可以在changepassword.php页面中声明一个简单的变量来更新密码,这将有助于检查密码是否被更新-Rory McCrossan
$("#changepassword").submit(function(e) {
e.preventDefault(); // stop normal form submission
$.ajax({
url: "changePassword.php",
type: "POST",
data: $(this).serialize(), // you also need to send the form data
dataType: "html",
success: function(html) {
$("#s-window").append(html);
}
});
});
if(resp=='updated')
{
alert('password has been updated');
}
if(resp=='notupdated')
{
alert('password not updated,plz try again');
}
var str = $( "#changepassword" ).serialize();
$.ajax({
url: "changePassword.php",
type: "POST",
dataType: "html",
data: str,
success: function(html){ // this happens after we get results
$("#s-window").append(html);
}