Javascript Ajax调用出错->;发送两个文件而不是一个
我需要你帮我做一个基本的ajax调用,我用它作为登录按钮。 有一个表单需要完成,然后按下“login”按钮,这通常会调用一个php文件来检查和处理登录操作 问题是,当我尝试登录时,我发送了两个文件,而不是一个。我的意思是,我希望这个操作调用login.php文件并返回一个带有对象的回复,但是有一个第一个请求出现在我的开发人员控制台中,另一个我不想调用的文件出现在第一个调用下面 问题当然出在我的代码中,我必须在我的JS文件或php中编写一些糟糕的代码,因此它们如下所示: -单击此函数即可调用JS ajaxJavascript Ajax调用出错->;发送两个文件而不是一个,javascript,php,jquery,ajax,xmlhttprequest,Javascript,Php,Jquery,Ajax,Xmlhttprequest,我需要你帮我做一个基本的ajax调用,我用它作为登录按钮。 有一个表单需要完成,然后按下“login”按钮,这通常会调用一个php文件来检查和处理登录操作 问题是,当我尝试登录时,我发送了两个文件,而不是一个。我的意思是,我希望这个操作调用login.php文件并返回一个带有对象的回复,但是有一个第一个请求出现在我的开发人员控制台中,另一个我不想调用的文件出现在第一个调用下面 问题当然出在我的代码中,我必须在我的JS文件或php中编写一些糟糕的代码,因此它们如下所示: -单击此函数即可调用JS
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:)尝试以下操作(将$(“#您的表单”)
切换到您的表单ID):
尝试此操作(将$(“#您的表单”)
切换到您的表单ID):
对不起,迟了答复
谢谢大家的回答,它现在可以工作了,我只有一个lil问题:我的ajax调用返回的数据不是JSON,尽管我在php中使用
打印(json_编码($reponse))
我还需要做些什么才能将答案视为JSON吗?很抱歉,我没有及时回复
谢谢大家的回答,它现在可以工作了,我只有一个lil问题:我的ajax调用返回的数据不是JSON,尽管我在php中使用
打印(json_编码($reponse))
我还需要做些什么才能将答案视为JSON吗?您是否运行了
event.preventDefault()
当您运行此javascript代码时,要停止正常提交表单,我们可以看看您如何调用logIn()
可能是表单提交的问题。我将尝试此代码@riggsfully,thxYes@VinnyMannello登录函数位于我创建的Webservices对象中。它的调用是$('loginSubmit')。off('click')$('loginSubmit')。on('click',function(){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();Webservices.logIn(pseudo,mdp,function(reponse){alert(response);});}}}}};@AurelCA看起来@riggsfully走上了正确的轨道,
是什么样子的?您是否运行了event.preventDefault()
来停止表单提交,当您在其位置运行此javascript代码时,可以看到如何调用logIn()
表单提交可能有问题。我将尝试此代码@RiggsFolly,thxYes@VinnyMannello登录函数在我创建的Webservices对象中。它的调用是$('loginSubmit')。off('click');$('loginSubmit')。on('click',function(){if($('pseudoC')。val()====“”){alert('remplir le pseudoC');}如果($('#mdpC').val()==“”){alert('remplir le mdp');}else{//Parameters var pseudo=$('#pseudo c').val();var mdp=$('#mdpC').val();Webservices.logIn(pseudo,mdp,function(reponse){alert(reponse);});@AurelCA看起来@riggsfully走上了正确的轨道,
是什么样子的?
$("#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);
});
}
});