我需要你帮我处理一个用于登录按钮的基本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));
谢谢大家阅读和帮助我!我想我做的事情很糟糕但是我看不到,我不是很有经验,所以如果你觉得这很容易解决它也不要感到惊讶^^
见ya:)
答案 0 :(得分:2)
尝试此操作(将$("#your-form")
切换为您的表单ID):
$("#your-form").submit(function(event) {
event.preventDefault(); //prevent form submission and do your code instead...
if ($('#pseudoC').val() == "") {
alert('remplir le pseudo');
} else if ($('#mdpC').val() == "") {
alert('remplir le mdp');
} else {
//Parameters
var pseudo = $('#pseudoC').val();
var mdp = $('#mdpC').val();
//Faire le check bdd si le pseudo existe et s'il est bien associé à ce mdp
Webservices.logIn(pseudo, mdp, function(reponse) {
alert(reponse);
});
}
});
答案 1 :(得分:0)
对不起,迟到的回复,
感谢你们的答案,它现在有效,我只有一个lil问题:我的ajax调用返回的数据不是JSON,虽然我在php中返回一个JSON
打印(json_encode($效应初探));
我是否必须做任何其他事情才能将答案视为JSON?