IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Variable php, AJAX et JavaScript


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 420
    Points : 116
    Points
    116
    Par défaut Variable php, AJAX et JavaScript
    bonjour a tous,

    J'ai besoin de vos lumières pour m'aider à avancer sur un projet.

    Le projet est basé sur un pseudo MVC.
    Dans une vue, j'ai un formulaire php dans lequel l'utilisateur final doit saisir un N° de devis. Afin de vérifier que le N° n'est pas déjà dans la BDD (MySQL), j'utilise de l'ajax pour faire appel à une autre page php qui exécute la requête SQL pour vérifier que le N° n'est pas déjà affecté a un autre dossier.
    La requête s’exécute à la perte du focus du champs de saisie.

    J'arrive à aller jusqu'à l’exécution de la requête SQL qui interroge la BDD, par contre comment je peux faire pour retourner la valeur de cette requête dans du javascript pour faire une alerte utilisateur l'informant que le N° de devis existe déjà et remettre le champs à vide.

    Merci par avance pour votre aide précieuse et bonne journée a tous

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 230
    Points
    20 230
    Par défaut
    Tu fais simplement un echo dans ta page php que tu analyses ensuite en javascript.

    Après selon les besoins tu fait un echo de texte , de json ,d'xml ...

    Requete.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql->query('...');
    //Traite le résultats
    //Retourne une information à JS , ici du json
    echo json_encode(array('exists'=>1,'id'=>10));
    Coté javascript (ici du jquery pour aller vite)
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $.post('requete.php',function(data){
        if(data.exist == 1) {
            alert('erreur existe');
        } else {
            alert('OK');
        }
    },'json');

  3. #3
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 201
    Points : 4 665
    Points
    4 665
    Par défaut
    Bonjour,

    Perso j'essaie d'avoir toujours la même structure de réponse pour mes ajax : ce qui simplifie de beaucoup mes js(tous les mêmes) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo json_encode(array('error'=>1, 'data'=>10, 'msg'=>'Param mal formaté'));
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if(data.error != 0) {
            alert( data.msg );
        } else {
            //alert( data.msg);
            var x = data.data;
        }

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 420
    Points : 116
    Points
    116
    Par défaut
    Bonjour et merci pour vos réponses,

    je viens d'essayé de mettre en application vos conseil mais je n'y arrive pas. C'est aussi la première fois que j'utilise JSON.

    Si vous pouvez m'aider s'il vous plait je vous en remercie par avance

    voila le contenu de la page appelée

    verifNumDevis.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $pdo = PDOIbgn::getPDOIBGN();
     
    $numDevis = $_GET['action'];
     
    $req = "SELECT numDevis FROM commande WHERE numDevis= " . $numDevis;
    $ligneRetournee = $pdo->requeteCompteur($req);
    $ligneRetournee contient bien le résultat de la requete par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ligneRetournee	array[2]
    [numDevis]	string	"1"
    [0]	string	"1"

    la page contenant le JS

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $.post('index.php?page=verif&action=' + escape(numero), function(data) {
            if (data.exist == 1) {
                alert('erreur');
            } else {
                alert('ok');
            }
        }, 'json');

    'index.php?page=verif&action=' + escape(numero) redirige vers 'index.php?page=verif&action=1" si dans la zone de saisie, l'utilisateur tape 1

    Lorsque j'arrive sur le $.post je ne rentre pas dans la fonction, j'ai mis un alert avant le if et je n'ai pas d'alert.

    Pouvez vous m'aider s'il plait

    merci par avance

  5. #5
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 201
    Points : 4 665
    Points
    4 665
    Par défaut
    Mais il ne manque pas le retour en json ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ligneRetournee = $pdo->requeteCompteur($req);
    echo json_encode(array('exist'=>1,'ligne'=>$ligneRetournee));
    exit;
    et appel jquery est un get ici
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $.get('index.php?page=verif&action=' + escape(numero), function(data) {
     if (data.exist != 1) {
                alert('erreur');
            } else {
                alert(data.ligne);
            }
        }, 'json');

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 420
    Points : 116
    Points
    116
    Par défaut
    Bonjour papajoker,

    Pour le retour en json, je l'avais bien mis mais oublié de le recopier dans mon post précédent.

    j'ai modifier le .post en .get mais rien ne change, je n'entre pas dans la fonction
    après $.get('index.php?page=verif&action=' + escape(numero), function(data), j'ai remis une alerte mais j'ai aucun affichage.
    et lorsque je debbug je passe bien sur $.get.....{
    et je sors aussitot

    vous n'auriez pas une idée sur l'origine de ça par hasard ?

    Je vous remet les extraits de code

    verifNumDevis.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $pdo = PDOIbgn::getPDOIBGN();
     
    $numDevis = $_GET['action'];
     
    $req = "SELECT numDevis FROM commande WHERE numDevis= " . $numDevis;
    $ligneRetournee = $pdo->requeteCompteur($req);
     
    echo json_encode(array('exist' => 1, 'lignes' => $ligneRetournee));
    sur echo json-encode, je passe bien dessus lorsque je fais du pas à pas.
    et j'ai supprimer la fonction exit car je sors du programme

    action.js
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function verifNumDevis(numero) {
        file('index.php?page=verif&action=' + escape(numero));
        $.get('index.php?page=verif&action=' + escape(numero), function(data) {
            alert('erreur');
            if (data.exist != 1) {
                alert('erreur');
            } else {
                alert(data.ligne);
            }
        }, 'json');

    file('index.php?page=verif&action=' + escape(numero)); me sert pour créer la fonction xhr_object.open

    merci pour votre aide

  7. #7
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 230
    Points
    20 230
    Par défaut
    file('index.php?page=verif&action=' + escape(numero)); me sert pour créer la fonction xhr_object.open
    Le code donné pour la requête ajax c'est du jquery donc si tu n'utilise pas jquery mais les objet xhr standard, ca risque pas de marcher

    Si erreur js il y'a elle doivent apparaître dans la console des outils de dev de ton navigateur.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 420
    Points : 116
    Points
    116
    Par défaut
    bonjour Grunk,

    Dans la console je n'ai aucun message d'erreur

  9. #9
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 201
    Points : 4 665
    Points
    4 665
    Par défaut
    Pour l'ajax,

    il faut utiliser l'outil développeur pour du debug.

    sous chrome (dans menu Outils):
    onglets Network - XHR ; puis actualiser
    doit apparaitre la requete ajax :
    il est possible de voir le retour de la requete

    Il est possible de voir si erreur javascript : onglet "Console"

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 420
    Points : 116
    Points
    116
    Par défaut
    bonjour papajoker

    Je viens de debbugger l'appli avec Chrome et lorsque je vais sous l'onglet Reponse dans NetWok après avoir sélectionner XHR (aussi bien dans la liste des fichiers que dans la barre d'état ) seul ke code d'instanciation de l'objet xhr est affiché.
    Sous console j'ai ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    XHR finished loading: "http://localhost:81/RapportIBGN/index.php?page=verif&action=1". action.js:204
    file action.js:204
    verifNumDevis action.js:176
    onkeyup index.php:120
    XHR finished loading: "http://localhost:81/RapportIBGN/index.php?page=verif&action=1". jquery-1.10.2.min.js:6
    send jquery-1.10.2.min.js:6
    x.extend.ajax jquery-1.10.2.min.js:6
    x.(anonymous function) jquery-1.10.2.min.js:6
    verifNumDevis action.js:177
    onkeyup
    Je ne vois aucune erreur.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 420
    Points : 116
    Points
    116
    Par défaut
    Re bonjour a tous,

    C'est bon, j'arrive a voir la réponse dans le debug de Chrome.
    Par contre comment faire pour exploiter cette réponse ?

    Merci par avance

  12. #12
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 201
    Points : 4 665
    Points
    4 665
    Par défaut
    Citation Envoyé par stefano Voir le message
    action.js
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function verifNumDevis(numero) {
    //    file('index.php?page=verif&action=' + escape(numero));
        $.get('index.php?page=verif&action=' + escape(numero), function(data) {
            //alert('ajax envoyé');
            if (data.exist != 1) {
                alert('erreur');
            } else {
                console.log(data);
                alert(data.ligne);
            }
        }, 'json');
    file() est aussi un appel ajax donc il faut choisir ici avec jquery

    tu paux faire des console.log(data); pour voir dans la console de debug le retour

Discussions similaires

  1. Utilisation d'une variable php dans popup javascript
    Par cybernetique dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/01/2008, 21h27
  2. Héritage unique variables PHP (ajax)
    Par maxfive7 dans le forum Langage
    Réponses: 2
    Dernier message: 24/08/2007, 00h34
  3. [PHP-JS] passage d'une variable php à une fonction javascript
    Par pimpmyride dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 07/04/2006, 16h17
  4. [PHP-JS] utiliser une variable php dans du javascript
    Par kcizth dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/02/2006, 11h53
  5. [PHP-JS] variable php dans du javascript ?????
    Par lipczynski dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 18/08/2005, 14h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo