我正在使用 JS ajax 和 php 作为我正在构建的游戏的登录和注册系统。
我遇到的问题是我不确定ajax请求实际上正在处理我指出的php代码。当我运行代码时,网页上会发生正确的事情,但我已将 var_dump() 放入 php 中,以确保数据确实存在,但网页上的 php 没有像您通常使用 var_dump 那样显示任何内容()
这是我使用的html:
<article id="container">
<div id="load-new" class="game_menu">
<h1>LOAD/NEW</h1>
</div>
<div id="reg" class="game_menu">
<h1>REGISTER</h1>
<form name="register" method="post" action="">
<label for="usernamesignup" class="uname">Your username</label>
<input id="usernamesignup" name="usernamesignup" required="required" type="text" placeholder="Username" />
<label for="emailsignup" class="youmail"> Your email</label>
<input id="emailsignup" name="emailsignup" required="required" type="email" placeholder="domain@mydomain.com"/>
<label for="passwordsignup" class="youpasswd">Your password </label>
<input id="passwordsignup" name="passwordsignup" required="required" type="password"/>
<label for="passwordsignup_confirm" class="youpasswd">Please confirm your password </label>
<input id="passwordsignup_confirm" name="passwordsignup_confirm" required="required" type="password"/>
<button id="reg_submit" type="button">Register</button>
</form>
</div>
<div id="login" class="game_menu">
<h1>LOGIN</h1>
<form name="login" method="post" action="">
<label for="username" id="username_label">Username:</label>
<input type="text" name="username" id="username" value=""/>
<label for="password" id="password_label">Password:</label>
<input type="password" name="password" id="password" value=""/>
<button id="login_submit" type="button">Login</button>
</form>
</div>
<div id="access" class="game_menu">
<h1>ACCESS</h1>
<button id="login_but" type="button">Login</button>
<button id="reg_but" type="button">Register</button>
</div>
这是我在ajax请求中使用的JS:
this.login_ajax = function()
{
var username = $("#username").val();
var password = $("#password").val();
var dataString = 'username='+ username + '&password='+ password;
alert(dataString);
$.ajax({
type:"POST",
url:"PHP/login.php",
data: dataString,
success: function() {
$('#login').hide();
$('#load-new').show();
},
error: function(){
alert("ERROR");
}
});
};
这是运行的 php 文件:
if ((isset($_POST['username'])) && (strlen(trim($_POST['username'])) > 0)) {
$username = stripslashes(strip_tags($_POST['username']));
} else {$username = 'No username entered';}
if ((isset($_POST['password'])) && (strlen(trim($_POST['password'])) > 0)) {
$password = stripslashes(strip_tags($_POST['password']));
} else {$password = 'No password entered';}
var_dump($username);
就像我说的,ajax 请求返回成功,但我没有收到来自 php 文件的转储,这让我思考,php 文件实际上正在运行吗?
谢谢
最佳答案
在 success() 中,您可以检查从 PHP 传递到 HTML 页面的数据。你必须设置 success function(data) {...},并执行类似 console.log(data); 的操作在成功函数本身内。然后打开浏览器并查看 console.log 输出的内容。
如果您使用 Google Chrome - 我强烈建议您下载 Chrome 插件 PHP Console用于检查 future 的 PHP 错误和警告。它可能不完美,但我认为它很棒!
关于php - ajax真的有效吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15315636/