【发布时间】:2013-10-29 12:42:48
【问题描述】:
我正在尝试使用 jQuery 和 ajax 函数来避免重新加载页面。
所以我有一个基本的表格,我在这里将数据发送到php文件我没有问题。
我遇到的麻烦是处理返回,因为即使查询失败,它也会返回给我。
在php文件中我有那个
<?php
//Instantiation de la connexion
require_once('../../config/connexion.php');
//Initialisation des fichiers requis
include_once('../../lib_php/librairie.php');
//Initialisation des variables
function RecordObjectif(){
//On cherche l'id de l'utilisateur
$id_student = fetchUserId();
if(isset($_POST['objectif'])){
$objectif = mysql_real_escape_string($_POST['objectif']);
$query = "INSERT INTO ...";
mysql_query($query);
if(mysql_affected_rows()>=0){
$out['erreur'] = 1;
}else{
$out['erreur'] = 0;
}
echo $out;
}else{
return null;
}
}
echo RecordObjectif();
在 jquery 中我的意思是 Html 页面我有这个
$.ajax({
type: 'POST',
url: 'pages_ajax/mes-objectifs.php',
data: { objectif: objectif, nom_programme: nom_programme, date_depart : date_depart, date_fin: date_fin, statut:statut},
dataType: "json",
beforeSend:function(){
// this is where we append a loading image
$('#resultat').empty()
$('#resultat').attr('style','text-align:center');
$('#resultat').append('<img src="images/loading.gif" alt="Loading..." />');
},
success:function(data){
// successful request; do something with the data
if(data.erreur==1){
$('#resultat').empty().removeAttr('style');
$('#resultat').attr('class','success').empty().append('<b>Enregistrement de votre programme terminé.</b>')
}
},
error:function(){
if(data.erreur==0){
// failed request; give feedback to user
$('#resultat').empty().removeAttr('style');
$('#resultat').attr('class','error').empty().append('<b>Erreur lors de l\'enregistrement, veuillez recommencer dans quelques minutes.</b>');
}
}
我不知道如何对待回报,它总是回报给我成功。
我想显示错误if $out['erreur'] = 0 我不明白的是我总是成功返回。
结果没有被解释,我还有加载图标。
我们将不胜感激任何形式的帮助。
【问题讨论】:
-
您应该用英语而不是您的母语编写代码。
mysql_query已弃用,您应该改用 PDO。顺便说一句,以这种方式对待data,你应该让PHP返回一个JSON数组。 -
jQuery ajax 方法中的
success函数不关心响应的值是什么,只关心有一个。因此,如果您的 php 返回 '1' 或 '0' 它仍然是一个成功的 ajax 请求。 -
我将这个
header('Content-Type: application/json; charset=utf8');添加到php文件中,但这还不够
标签: javascript php jquery ajax callback