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

AJAX Discussion :

Requête sql avec AJAX


Sujet :

AJAX

  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 754
    Points : 376
    Points
    376
    Par défaut Requête sql avec AJAX
    Bonsoir,

    tout d'abord, je m'excuse pour ceux qui vont bondir, et je m'empresse de rectifier.

    Je sais parfaitement qu'AJAX permet d'envoyer des requête HTTP.

    J'ai lu les tutos, et j'ai bien compris à présent la méthode pour faire passer une variable en utilisant la méthode GET depuis javascript en faisant une requête http avec AJAX.


    Sauf que, je ne sais pas comment faire lorsque je veux faire une requête sql et non délivrer un simple texte.

    Admettons que mon javascript ce soit ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var xhr = new XMLHttpRequest();
    var requete="UNE REQUETE SQL QUELCONQUE";
    var url = "page.php?req=" + requete;
    xhr.open("GET", url);
    xhr.send(null);
    Là, je pourrais récupérer la requete dans une chaine de caractères en php.

    Mais je ne comprends pas à quel moment je pourrais exécuter la requête en question, puisque le principe même c'est de ne pas recharger la page.


    Suffit il de traiter et de voir qqchose du style isset($_GET['req']) --> traitement de la requete ?


    Mais dans ce cas là, je ne coomprends pas quelque chose.

    Si j'ai un script qui se lance au chargement load de la page en question.

    Le fait de faire cette requête AJAX va forcement rechargé la page non ? Sinon comment est il possible que le traitement soit pris en compte ?

    Ce qui m'amène donc à ce point là, si ma page est rechargé, mon script au chargement va se relancer, et ça j'ai pas du tout envie que ça se passe comme ça =)
    Je pourrais ruser mais bon...

    En fait, je n'arrive tout simplement pas à visualiser malgré tous les tutos que j'ai pu lire sur ajax à quel moment et dans quelle condition la requête va s'exécuter sur php.


    Merci pour votre aide.

  2. #2
    Membre expérimenté
    Avatar de Gnuum
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 215
    Points : 1 715
    Points
    1 715
    Billets dans le blog
    1
    Par défaut
    En fait, du point de vue qui t'intéresse, la différence entre une requête faite via la barre d'adresse de ton navigateur ou en cliquant sur un lien (synchrone) et une requête faite en AJAX (asynchrone) est que, dans le premier cas, le body de la réponse HTTP est affiché dans la page de ton navigateur automatiquement alors que dans le second cas, le body de ta requête t'es renvoyé et tu dois te débrouiller avec!
    Le code PHP se comporte comme pour n'importe quelle requête synchrone.

    Si je reprends ton code, voici un exemple basique de traitement de ta réponse HTTP à ta requête HTTP AJAX:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    var xhr = new XMLHttpRequest();
    var requete="UNE REQUETE SQL QUELCONQUE";
    var url = "page.php?req=" + requete;
    xhr.open("GET", url);
    xhr.send(null);
     
    // Ecoute l'événement de changement de statut du traitement de la requête AJAX.
    xhr.onreadystatechange = function() {
        // Gère le cas de la requête ayant correctement fonctionnée.
        if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
            // Récupère le body de la réponse HTTP
            // (c'est ce qui est affiché automatiquement dans ta page par le navigateur lors d'une requête synchrone).
            var content = xhr.responseText;
     
            // Ajoute un élément div au body de la page.
            var elem = document.createElement('div');
            document.body.appendChild(elem);
     
            // Ecrit le body de la réponse dans le nouvel élément.
            elem.innerHTML = content;
        }
    }
    A noter que la requête que tu sembles faire, où tu passes une requête SQL, est un anti-pattern absolu avec des risques énormes en terme de sécurité!
    https://fr.wikipedia.org/wiki/Injection_SQL
    http://php.net/manual/fr/security.da...-injection.php

    Tu devrais faire ta requête SQL à l'intérieur de ton code PHP comme pour n'importe quelle autre "page" et seulement passer des paramètres dans ton URL en pensant bien à les échapper avec PDO par exemple.

    Voici un tutoriel, très simple à réaliser, qui peut t'aider à comprendre la partie AJAX: http://marcautran.developpez.com/tut...vascript/json/
    {gnu: ["um", "cki"]}

Discussions similaires

  1. [AJAX] Afficher résultat requête SQL avec ajax
    Par Kevfou dans le forum AJAX
    Réponses: 2
    Dernier message: 01/11/2011, 16h54
  2. [AJAX] Requête SQL avec AJAX
    Par Nanais19 dans le forum AJAX
    Réponses: 5
    Dernier message: 11/07/2011, 16h58
  3. Problème de requête SQL avec instruction TRANSFORM
    Par Nosper dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 21/06/2005, 16h15
  4. requête SQL avec paramètre en vb avec base de donnée SQL srv
    Par dialydany dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 01/02/2005, 10h33
  5. PB requète SQL avec Interbase
    Par missllyss dans le forum InterBase
    Réponses: 2
    Dernier message: 15/07/2003, 11h37

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