Debutant js en soif de comprendre

epitale Messages postés 4343 Statut Membre -  
Alain_42 Messages postés 5413 Statut Membre -
Bonjour
merci, si vous pouvez m'aider sur ce soucis,
ce code ne fait pas ce que je veux et trouve pas où est l'erreur:


dans un fichier script

testrest();

function testrest(){
jQuery.ajax({
type: 'GET',
url: 'testrest.php',

success:function(data){

alert(data.testrest);

},
});

};


dans testrest.php :
function compter_sql($table)
{
$sql = "select id from $table";
$p = mysql_query($sql)OR DIE("Erreur sur la requete SELECT id FROM $table WHERE $where");
return mysql_numrows($p);
}
$test=0;
$compttab1 = compter_sql("tab1");
$compttab2= compter_sql("tab2");
$rest=$compttab1-$compttab2;

if($rest==3){$test=1;};

$retourrest = array(
'testrest' => ($test),
);

header('Content-type: application/json');
echo json_encode($retourrest);


aucun alert(data.testrest) n'est afficher, la requete get testrest.php est bien lancé

6 réponses

avion-f16 Messages postés 20367 Statut Contributeur 4 509
 
Salut,

Il est nécessaire d'indiquer que le contenu reçu est de type JSON.
$.ajax({
  url: url,
  dataType: 'json',
  data: data,
  success: callback
});


Pour une requête GET, tu peux utiliser jQuery.getJSON.
https://api.jquery.com/jQuery.getJSON/
La pensée mène le monde.
0
epitale Messages postés 4343 Statut Membre 915
 
bonsoir avion-f16 merci a toi,
effectivement je ne précisais pas dataType: 'json'... pour mes autres requêtes passant par json et qui fonctionne, je ne l'avais pas précisé non plus, merci pour se renseignement de rigueur que j'aimerai bien aussi pouvoir appliquer...

reste que le soucis ne vient pas là

merci pour jQuery.getJSON. je connaissais pas et me renseignerais, reste que la mon code devrait marcher (c'est pas mon premier du genre meme si je débute) et meme si ce code est pas la meilleur solution, on peux pas rester sans savoir pourquoi ca marche pas
0
Alain_42 Messages postés 5413 Statut Membre 894
 
url: 'testrest.php'

est ce que ton script testrest.php est bien dans le même répertoire que ta page contenant l'Ajax ?

sinon il faut mettre le chemin relatif vers ce script

autre remarque:
dans ton script php , dans ta fonction tu n'as pas de return


.... 
$retourrest = array( 
'testrest' => ($test), 
);  
return $retourrest; 


ou alors tu ne nous a pas mis tout ton code ni non plus comment est lancée ta fonction
0
avion-f16 Messages postés 20367 Statut Contributeur 4 509
 
Est-ce que le fichier PHP affiche bien le résultat souhaité lorsque tu l'affiches via le navigateur, avec sa propre URL ?

Si oui, alors comment et où appelles-tu la fonction testrest() ?
Dans le script que tu montres, tu l'appelles avant de la déclarer.
0
epitale Messages postés 4343 Statut Membre 915
 
bonsoir, merci alain, merci avion,

ou la requete GET testrest.php fonctionne (cf firebug)
j'ai fait un index et des .js a part tout est clair la dessus, pour sure l'erreur est dans le code que j'ai mi plus haut, mais ou ???
--
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
avion-f16 Messages postés 20367 Statut Contributeur 4 509
 
Essaie avec $.getJSON.

Voici son prototype (différent de $.ajax) :
jQuery.getJSON( url [, data] [, success(data, textStatus, jqXHR)] )
0
Alain_42 Messages postés 5413 Statut Membre 894
 
j'avait mal vu ou était le } de la fin de ta fonction compter_sql() donc ne tient pas compte de ma remarque sur le return

par contre:

$p = mysql_query($sql)OR DIE("Erreur sur la requete SELECT id FROM $table WHERE $where");

où est définie cette variable $where ?
0