2009-11-03 5 views
0

J'essaie d'obtenir le retour de données d'une fonction appelée par un appel jquery ajax. Ma fonction est situé dans une fichier php et il semble liket sonRécupération de données à partir d'un appel jquery ajax

valid_user() { 

    $id = $_POST('id'); 

    if($id == 'hello'){ 
     return true; 
    } 
    else{ 
     return false; 
    } 
} 

et voici mon appel ajax

$.ajax({ 
    type: "POST", 
    url: path + "valid_user", 
    sucess: function(msg) { 
     alert("Data returned: " + msg); 
    } 
}); 

J'ai testé everthing et la fonction est wokring (a été modifié pour cet exemple) mais je ne peux pas la valeur de retour de la fonction valid_id(). Comment est-ce que je reçois ceci? la variable msg revient constamment vide. Merci

+1

appelez-vous la fonction valid_user() dans votre script php. Et si oui faites-vous écho (résultat) après le résultat? – smack0007

Répondre

0

Vous devez écrire du code côté serveur PHP qui appelle la fonction et écrit sa valeur de retour dans le flux de sortie. Par exemple:

<?php echo valid_user(); ?> 
1

On dirait que vous avez mal orthographié sucess ---- mais cela ne peut pas être dans votre code en cours d'exécution. Vous devriez vérifier le paramètre secondes de success:

success:function(data, textStatus) 
4

De ma compréhension, il y a plusieurs problèmes.

1) la méthode valid_user() n'a pas été appelée.
2) L'url ne semble pas non plus correcte.
3) Le mot-clé "succès" est épelé "succès".
4) Vous ne transmettez aucune "donnée".

Voici un exemple d'appel ajax adapté à vos besoins.

$.ajax({ 
    type: "POST", 
    url: "validateUser.php", 
    data: "id=49", 
    success: function(msg){ 
    alert("true or false: " + msg); 
    } 
}); 
0

Ceci devrait fonctionner - vous pourriez vouloir mettre une meilleure désinfection sur la valeur POST juste au cas où.

Dans le fichier PHP:

$id = isset($_POST['id']) ? trim($_POST['id']) : ''; 
$return = 'false'; 

if($id!=''){ 
    valid_user($id); 
} 

echo $return; 

valid_user($id) { 
    if($id == 'hello'){ 
     $return = 'true'; 
    } 
} 

jQuery Appel:

<script> 
id = 'hello';  
$.ajax({ 
    type: "POST", 
    url: "validateUser.php?id="+id, 
    success: function(msg) { 
     alert("Data returned: " + msg); 
    } 
}); 
</script> 
0

Merci pour votre aide, je compris la question, la raison pour laquelle il ne fonctionnait pas était becuase ma fonction valid_id() retournait vrai ou faux, et je devais retourner l'écho "vrai"; et écho "faux"; Une fois cela fait, la variable msg contenait les données true ou false.

Questions connexes