【发布时间】:2016-05-27 00:25:13
【问题描述】:
我需要您帮助我完成我用于登录按钮的基本 ajax 调用。 有一个表单要填写,然后按“登录”按钮,这通常会调用一个 php 文件来检查和处理登录操作。
问题是当我尝试登录时,我发送了两个文件而不是一个。我的意思是我希望这个动作调用 login.php 文件并用一个对象发回一个回复,但是第一个请求以红色显示我的开发者控制台和另一个我不想调用的文件出现在下面第一次通话。
Here's what i see on my chrome developper console
问题肯定出在我的代码中,我一定是在我的 JS 文件或 php 中编写了一些错误的代码,所以它们是: - JS ajax 调用点击此函数
logIn(pseudo, mdp, callback) {
var var_request = {};
var_request['pseudo'] = pseudo;
var_request['mdp'] = mdp;
$.ajax({
url: '/webservices/logIn.php',
method: 'POST',
data: var_request,
timeout: kTimeout,
success: function() {
// callback();
alert('good');
},
error: function() {
alert('function error');
}
});
},
请求的php文件是
include("connexion_bdd.php");
$pseudo = $_POST["pseudo"];
$mdp = $_POST["password"];
$req = $bdd->prepare('SELECT * FROM joueurs WHERE nickname = ?');
$req->execute(array($pseudo));
$reponse = $req->fetch();
if (!$reponse) {
$return = array('error'=>'Pseudo non existant');
} else if ($reponse['mdp'] != $mdp) {
$return = array('error'=>'Mauvais mot de passe');
} else {
$return = array('error'=>'aucune erreur');
}
print(json_encode($return));
感谢大家阅读和帮助我!我想我做了坏事,但我看不到,我不是很有经验,所以如果你似乎很容易解决它,请不要感到惊讶^^
再见:)
【问题讨论】:
-
当您在其位置运行此 javascript 代码时,您是否运行
event.preventDefault()以停止正常提交表单 -
我们可以看看您如何称呼
logIn()可能是表单提交的问题。 -
我要试试这个代码@RiggsFolly,谢谢
-
是@VinnyMannell 登录功能在我创建的Webservices 对象中。它的调用是 $('#loginSubmit').off('click'); $('#loginSubmit').on('click', function() { if ($('#pseudoC').val() == "") { alert('remplir le pseudo'); } else if ( $('#mdpC').val() == "") { alert('remplir le mdp'); } else { //参数 var pseudo = $('#pseudoC').val(); var mdp = $('#mdpC').val(); Webservices.logIn(pseudo, mdp, function(reponse) { alert(reponse); }); } });
-
@AurelCA 看起来@RiggsFolly 走上了正轨……
<form></form>看起来像什么?
标签: javascript php jquery ajax xmlhttprequest