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

JavaScript Discussion :

[AJAX] Exécuter une requête SQL des la checkbox cochée


Sujet :

JavaScript

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut [AJAX] Exécuter une requête SQL des la checkbox cochée
    Salut à tous,

    J'ai un petit problème, je chercherais à exécuter une requete de modification dès qu'une checkbox est coché tout en restant sur la même page.

    Ca me permettrer d'archiver des produits dans une partie administration de boutique que je suis en train de développez.

    Si quelqu'un connaitrait une solution simple et complète me permettant de gérer cela il serait d'une grande aide.

  2. #2
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut
    Bonjour et bienvenue sur Developpez

    Renseigne-toi sur l'objet XMLHttpRequest qui va te permettre cela : http://siddh.developpez.com/articles/ajax/

    Principe :
    - détecter l'évènement "checkbox cochée" (onClick)
    - lancer la requête vers une page php (grâce à l'objet XMLHttpRequest) qui effectuera les insertions/modifications SQL. A cette étape, tu ne changeras pas de page.
    - récupérer le retour du serveur si nécessaire

    En cas de problème d'implémentation, n'hésites pas à venir demander

    Nas'

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    ok, merci Nasky, je vais voir ca, si j'ai un problème je mettrais mon code sur le forum pour voir ce qui ne va pas

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Re, j'ai suivi tes conseils et j'ai trouvé la solution donc je t'en suis reconnaissant.
    Je met le code à disposition pour ceux qui chercheraient une solution comme je l'ai cherché moi :

    Fichier Hmlt (test.html):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <html>
            <head
                    <script type="text/javascript" src="test.js"></script>
            </head>
            <body>
                    <input type="checkbox" name="check" onclick="go()"/>
            </body>
    </html>
    Script Php (test.php) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
            //Rentrer les paramètres de connection à la base de données
     
            //On efectue ensuite la requête (celle que vous souhaitez !!)
            mysql_query("UPDATE article SET archive='1' WHERE id_article='1'") or die ("La requete de mise à jour a échoué");                    
    ?>
    Script Ajax (test.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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    function getXhr()
    {
    	var xhr = null; 
    	if(window.XMLHttpRequest) // Firefox et autres
    		xhr = new XMLHttpRequest(); 
    	else if(window.ActiveXObject)
    	{ // Internet Explorer 
    		try 
    		{
    			xhr = new ActiveXObject("Msxml2.XMLHTTP");
    		} 
    		catch (e) 
    		{
    			xhr = new ActiveXObject("Microsoft.XMLHTTP");
    		}
    	}
    	else 
    	{ // XMLHttpRequest non supporté par le navigateur 
    		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    		xhr = false; 
    	} 
    	return xhr
    }
     
    /**
    * Méthode qui sera appelée sur le click du bouton
    */
    function go()
    {
    	var xhr = getXhr()
    	// On défini ce qu'on va faire quand on aura la réponse
    	xhr.onreadystatechange = function()
    	{
    		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    		if(xhr.readyState == 4 && xhr.status == 200)
    		{
    			xhr.responseText;
    		}
    	}
    	xhr.open("GET","test.php",true);
    	xhr.send(null);
    }
    Voila donc si on regarde bien ca fait 3 fichiers et des que vous cochez la checkbox dans le fichier test.html ca fait la mise à jour.

    Pour ceux qui connaissent dîtes moi si je n'ai pas fait d'erreur ou s'il y a des améliorations à apporter !!

    Merci tout le monde....

  5. #5
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mai 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2006
    Messages : 64
    Points : 42
    Points
    42
    Par défaut
    J'aurai une question par rapport à ce post, si on veut envoyer l'id d'une table dans ma page test.php afin de faire la modification, partique quand on a plusieurs checkbox à modifier, on s'y prend comment?

  6. #6
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.open("GET","test.php?id=" + id ,true);

    Sinon, dje064, ça me parait correct, à part que tu n'utilises pas la réponse du serveur donc inutile de vérifier que la requête est terminée mais sinon...

    Nas'

  7. #7
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mai 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2006
    Messages : 64
    Points : 42
    Points
    42
    Par défaut
    Yep Nasky, merci pour ta réponse...

    juste pour savoir comment tu remplie le id

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.open("GET","test.php?id=" + id ,true);

  8. #8
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut
    Tu peux le passer en paramètre de ta fonction à appeler en cas de click.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <input ..... onClick="go(5);" />
     
    function go(id) {
    // ....
    xhr.open("GET","test.php?id=" + id ,true);
    //...
    }
    Nas'

  9. #9
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mai 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2006
    Messages : 64
    Points : 42
    Points
    42
    Par défaut
    Oki, merci, je vais essayer ca et je vous tiens au courant

Discussions similaires

  1. Exécuter une requète SQL a partir des données XBase
    Par jcachico dans le forum kettle/PDI
    Réponses: 0
    Dernier message: 06/01/2012, 10h36
  2. Exécuter une requête SQL via un batch
    Par WeeJay dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 22/09/2008, 12h32
  3. Réponses: 6
    Dernier message: 13/09/2008, 20h18
  4. Exécuter une requête SQL très longue
    Par coraziari_l dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 10/01/2008, 17h07

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