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

jQuery Discussion :

Requête SQL sur clic (toggle)


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de razorlok
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 211
    Par défaut Requête SQL sur clic (toggle)
    Bonjour à tous,

    je tente de développer une page affichant une liste de liens qui, au clic, lanceront une requête Mysql devant afficher une sous-liste (avec la fonction jQuery Toggle).
    Je pense donc qu'il faut que je passe par une fonction Ajax (mais je n'y connais pas grand chose) de type POST ou GET, faisant appel à une feuille PHP contenant le script de ma requête.

    J'ai donc tenté le code suivant :

    index.php :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script>
    <script src="toggle.js" type="text/javascript"></script>
     
    <ul>
    <li><a href="#" type="submit" id="lien1" onclick="display()">Lien 1</a></li>
    <div id="sliste1"></div>
    <li><a href="#" type="submit" id="lien2" onclick="display()">Lien 2</a></li>
    <div id="sliste2"></div>
    </ul>

    toggle.js :

    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
    $(document).ready(function(){
    for (var i=1; i<3; i++) {	
    	$("#lien" + i).click(display(i));
    }
    });
     
    function display(id) {
      return function() {
    	var res = $("#lien" + id);
      	$.ajax({
            type: "POST",
    	data: "res="+ res,
            url: "sql.php",
            success: function(reponse) {
                $("#sliste" + id).html(reponse);
            }
        });
        return false; 
      };
    }
    sql.php :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    require_once('config.php');
    mysql_connect($CFG->dbhost, $CFG->dbuser, $CFG->dbpass);
    mysql_select_db($CFG->dbname);
    mysql_query("SET NAMES 'utf8'");
     
    $resultat = $_GET['res'];
    echo $resultat;
    ?>

    Toute aide ou explication est, bien entendu, la bien venue !

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Il faut commencer par revoir les bases du html ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#" type="submit" id="lien1" onclick="display()">
    une balise a n'a jamais eu de type ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre confirmé Avatar de razorlok
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 211
    Par défaut
    Ah oui, c'est vrai, je me suis mélangé les pinceaux avec les inputs. Mea culpa.
    Enfin avec ou sans, je ne passe pas l'étape du javascript.

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Tu commets plusieurs erreurs dans ton code...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for (var i=1; i<3; i++) {	
    	$("#lien" + i).click(display(i));
    }
    Au moment où tu vas cliquer sur un élément, ce sera quoi la valeur de i selon toi ? (Indice)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var res = $("#lien" + id);
    $.ajax({
        type: "POST",
        data: "res="+ res,
    Ta variable res est un objet jQuery, tu ne peux pas envoyer un objet au serveur ! Le protocole HTTP ne permet l'échange que de données textuelles.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    return function(){...};
    return false;
    Tu ne peux pas avoir deux return dans le même bloc d'une fonction (en tout cas, le second ne sera jamais atteint) et le premier renvoie une fonction, qui n'est pas équivalent à false...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, 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
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

Discussions similaires

  1. Requête SQL sur un clic de Check Box & remplissage TextBox
    Par m3n2o dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/11/2006, 03h15
  2. requêtes sql sur plusieurs tables
    Par zahiton dans le forum Langage SQL
    Réponses: 4
    Dernier message: 25/11/2005, 10h59
  3. [SQL] requêtes SQL sur plusieurs tables
    Par zahiton dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 24/11/2005, 16h32
  4. A propos d'une requête SQL sur plusieurs tables...
    Par ylebihan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/09/2003, 16h26

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