最近将我的页面转换为jquery / ajax,以获得真正的动态页面。我的一些PHP函数正在遭受痛苦。这是最新的。
这是我用于处理登录的PHP
<?php
if($user->data['is_registered'])
{
//user is logged in
echo "<br>";
echo 'Welcome back ';
print $user->data['username'];
echo "<br>";
echo 'You have ' . $user->data['user_unread_privmsg'] . ' unread <a href="./forum/ucp.php?i=pm&folder=inbox">message(s)</a>';
echo '</h3><h4><a title="See You Later" href="' . append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=logout', true, $user->session_id). '">Log out</a></h4>';
}
else{
//user is not logged in
echo '
<form method="post" action="forum/ucp.php?mode=login">
<label for="username">
Username:
</label>
<input type="text" name="username" id="username" size="16" />
<label for="password">
Password:
</label>
<input type="password" name="password" id="password" size="16" />
<label for="autologin">
Remember?:
</label>
<input type="checkbox" name="autologin" id="autologin" />
<input type="hidden" name="redirect" value="../" />
<input type="submit" value="Log In" name="login" id="login" />
<a title="Register" href="forum/ucp.php?mode=register">
<br>
Register
</a>
</form>
';
}
?>
脚本。
<script type='text/javascript'>
$(document).ready(function() {
// handle the login form through ajax for phpbb
$(document).on('submit', '#login', function(event) {
event.preventDefault();
var url= $(this).attr('action');
alert(url);
$.ajax({
url: url,
type: 'POST',
dataType: 'HTML',
data: new FormData(this),
processData: false,
contentType: false,
success: function (data, status) {
alert(data);
},
error: function (xhr, desc, err) {
console.log('error');
}
});
});
});
</script>
我已经尝试将jquery作为独立运行,并在PHP之前和之后回显它。我已经尝试删除所有隐藏的重定向,但遗憾的是这听起来像是什么,登录并且什么都不做。
我在这里缺少什么?
答案 0 :(得分:0)
您已将submit
处理程序附加到该按钮。该按钮没有submit
个事件,没有表单数据且没有action
属性,因此您的代码将无法运行。
您需要将事件处理程序附加到表单。
如果您有多个表单,可以添加一个ID来识别它:
<form method="post" action="forum/ucp.php?mode=login" id="loginForm">
然后在你的javascript中:
$(document).on('submit', '#loginForm', function(event) {