Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/08/2011, 11h33   #1
Membre habitué
 
Homme
Étudiant
Inscription : mai 2011
Messages : 226
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 226
Points : 126
Points : 126
Par défaut récupérer variable php

Bonjour,

je travaille sur une application javascript, et j'ai besoin de communiquer avec un serveur, donc avec un fichier php. J'ai sur ce fichier une fonction php qui renvoie la liste des fichiers du serveur sous format json. Je n'ai à présent qu'un seul problème : comment exécuter cette fonction et en récupérer le résultat depuis mon application javascript ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function filesList($dirname) {
    $dir = opendir($dirname);
    $filesArray = array();
 
    while($file = readdir($dir)) {
        if($file != '.' && $file != '..' && !is_dir($dirname.$file))
        {
            $filesArray[] = $file;
        }
    }
 
    closedir($dir);
    $jsonList = json_encode($filesArray);
    return $jsonList;
}
Sharcoux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 11h40   #2
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 129
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 129
Points : 7 260
Points : 7 260
Bonjour,

ça c'est AJAX.

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 11h54   #3
Membre habitué
 
Homme
Étudiant
Inscription : mai 2011
Messages : 226
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 226
Points : 126
Points : 126
oui, je m'en doute bien. Je vais expliquer un peu mieux le pb :

Code :
1
2
3
4
5
6
7
    maListeDeFichiers = null;
 
    $.ajax({
        url: monFichier.php,
        type: "GET",
	success: ???,
    });
Que mettre dans success pour récupérer la liste et la mettre dans maListeDeFichiers?
Sharcoux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 11h58   #4
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 129
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 129
Points : 7 260
Points : 7 260
Code :
1
2
success: function(data){alert(data) },
    });
data sera le résultat retourne par le fichier coté serveur.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 12h05   #5
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 793
Points : 35 793
Déjà, si tu es censé récupérer un format JSON, il est préférable de l'indiquer à jQuery
Code :
1
2
3
4
5
6
$.ajax({
    url: monFichier.php,
    type: "GET",
    dataType: "json",
    success: ???,
});
Ceci dit, le mieux est encore d'utiliser la méthode getJSON().

Sinon
Citation:
Que mettre dans success pour récupérer la liste et la mettre dans maListeDeFichiers?
Euh...
Code :
1
2
3
success: function(data){
    alert(data);
}
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 01/08/2011, 13h03   #6
Membre habitué
 
Homme
Étudiant
Inscription : mai 2011
Messages : 226
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 226
Points : 126
Points : 126
Citation:
Ceci dit, le mieux est encore d'utiliser la méthode getJSON().
Ah? Pourquoi c'est mieux? Je veux dire, c'est juste plus court, ou il y a une différence?

Citation:
data sera le résultat retourne par le fichier coté serveur.
Ca veut dire qu'il me faut un fichier php pour chaque fonction que je veux utiliser?! Mettons que dans monFichier.php j'aie 3 fonctions, il n'y a pas moyen avec ajax de n'en exécuter qu'une parmi les trois? Ou alors, si c'est possible, comment je fais?
Sharcoux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 14h11   #7
Membre éclairé
 
Homme
Webmaster
Inscription : septembre 2007
Messages : 376
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Webmaster
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2007
Messages : 376
Points : 377
Points : 377
Citation:
Envoyé par Sharcoux Voir le message
Ah? Pourquoi c'est mieux? Je veux dire, c'est juste plus court, ou il y a une différence?



Ca veut dire qu'il me faut un fichier php pour chaque fonction que je veux utiliser?! Mettons que dans monFichier.php j'aie 3 fonctions, il n'y a pas moyen avec ajax de n'en exécuter qu'une parmi les trois? Ou alors, si c'est possible, comment je fais?
getJSON est spécialement optimisée dans le cas de la réception de JSON autant s'en servir

Pour ton fichier php tu peux faire un switch sur un paramètre que tu enverras avec ta requête ajax :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
<?php
 
switch($_GET['action']){
 
   case 'function1':
      functionOne();
      break;
 
 
   case 'function2':
      functionTwo();
      break;
}
 
function functionOne(){
}
 
function functionTwo(){
}
?>
Finality est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 15h15   #8
Membre habitué
 
Homme
Étudiant
Inscription : mai 2011
Messages : 226
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 226
Points : 126
Points : 126
Euh... Désolé d'avance pour la question stupide, mais comment je fais pour fournir un paramètre au php ?

c'est quelque chose comme ça?

Code :
1
2
3
4
5
6
7
$.ajax({
    url: monFichier.php,
    type: "GET",
    dataType: "json",
    data: {action:"paramètre"}
    success: ???,
});
puis

Sharcoux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 15h44   #9
Membre éclairé
 
Homme
Webmaster
Inscription : septembre 2007
Messages : 376
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Webmaster
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2007
Messages : 376
Points : 377
Points : 377
Voilà c'est ça mais oublies pas la virgule à la fin de la ligne :

Code :
1
2
3
4
5
6
7
$.ajax({
    url: monFichier.php,
    type: "GET",
    dataType: "json",
    data: {action:"paramètre"},
    success: ???,
});
Finality est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 16h21   #10
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 793
Points : 35 793
Citation:
Désolé d'avance pour la question stupide
Non, la question n'est pas stupide, en revanche, la réponse est clairement présente dans la doc officielle

Attention toutefois aux risques de confusion : dataType correspond au format que tu attends en réponse du serveur et n'a rien à voir avec le format des données envoyées.
Passer un objet à la propriété data est autorisé, mais oblige jQuery à les retransformer en chaine GET classique avant l'envoi, il est donc préférable d'utiliser la syntaxe
Code :
data: 'action=paramètre',
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 01/08/2011, 16h25   #11
Membre habitué
 
Homme
Étudiant
Inscription : mai 2011
Messages : 226
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 226
Points : 126
Points : 126
Merci beaucoup pour vos réponses. En particulier pour les petits éclaircissements sur le rôle de dataType

Pour moi, le pb est résolu
Sharcoux est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h46.


 
 
 
 
Partenaires

Hébergement Web