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] requete INSERT sql


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2008
    Messages
    7
    D�tails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Par d�faut [AJAX] requete INSERT sql
    J'ai effectu� un drag&drop entre 2 colonnes.
    http://www.dhtmlgoodies.com/scripts/...ag-drop-2.html

    J'utilise ma BDD pour alimenter la colonne de gauche d'�l�ments.( ce sont des noms d'ordinateur dans mon cas dans les petites boites blanches � la place des noms d'animaux)

    Je voudrais, quand je clique sur un bouton , sauvegarder les noms des �l�ments qui sont dans la colonne de droite dans une table de ma BDD.

    J'arrive gr�ce � la DOM de javascript � parcourir la colonne de droite qui est une DIV et � r�cup�rer les noms d'ordinateurs mais je ne sais pas comment les enregistrer dans ma BDD.

    Premiere Question ? faut-il que j'utilise de l'ajax, je suppose que oui car je vais effectuer une requete d'insertion.

    Est-ce qu'une fonction comme cela se rapproche de ce que je souhaite faire ?
    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
    function save()
    {	
    	var xhr = getXhr()
     
    	xhr.onreadystatechange  = function()
        { 
             if(xhr.readyState  == 4)
             {
                  if(xhr.status  == 200) 
                     document.getElementById('res').innerHTML= xhr.responseText; 
             }
        }; 
     
     
    	var nombre = document.getElementById("dropContent").childNodes.length;
    	for ( var i = 0; i<nombre ; i++){
    		xhr.open("POST","checkpc2.php",true);
    		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    		premier = document.getElementById("dropContent").childNodes[i].firstChild.data;
    		xhr.send("ordi="+premier);
     	}
    }
    la variable "premier" correspond au nom de l'ordinateur que je veux sauvegarder

    checkpc2.php correspond au fichier php o� j'effectue la requete d'insertion:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
            
            if(isset($_POST["save"]))
            {
                    include('../connect.php');
                                    
                    
                    $reponse=mysql_query("INSERT INTO pccheck SET NomOrdinateur='$_POST[ordi]'")or die(mysql_error()); 
                    mysql_close();
                    
                    
            }
     
    ?>
    Mon probl�me est que je ne sais pas si d�j� j'�cris bien le code de ce que je souhaite faire, et je n'arrive pas � effectuer d'insertion, je dois pas arriver � acc�der au fichier checkpc2.php � mon avis.

    merci de votre aide.

  2. #2
    Membre chevronn� Avatar de d-Rek
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Par d�faut
    Tu fais un xhr.send("ordi="+premier); � checkpc2.php
    Ton passage de donn�e est donc r�ussi.
    Seulement, tu peux pas utiliser l'objet XHR autant de fois comme �a, il se "consumme".

    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
    function save(){
    	var xhr = getXhr()
    	xhr.onreadystatechange = function(){
    		if(xhr.readyState==4 && xhr.status==200){
    			document.getElementById('res').innerHTML=xhr.responseText;
    		}
    	}
     
    	var nombre = document.getElementById("dropContent").childNodes.length;
    	for(var i=0; i<nombre; i++){
    		premier+=document.getElementById("dropContent").childNodes[i].firstChild.data';';
     	}
    	xhr.open("POST","checkpc2.php",true);
    	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	xhr.send("ordi="+premier);
    }
    Voil�, j'�conomise en envoyant qu'une seule requ�te XHR, j'ai concat�n� les donn�es via un s�parateur ";"
    A toi, c�t� PHP, de faire un split sur $_POST['ordi']

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    if(isset($_POST['ordi'])){
            include('../connect.php');
            $temp=split(';', $_POST['ordi']); // ici tu devrais faire un htmlentities sur $_POST['ordi'] histoire de ne pas te faire SQL-Injecté
            for($i=0; $i<count($temp); $i++){
                    $reponse=mysql_query("INSERT INTO pccheck SET NomOrdinateur='".$temp[$i]."'")or die(mysql_error());
            }
            mysql_close();
    }
    ?>
    Sinon je comprend vraiment pas pourquoi dans ton fichier PHP, tu testes $_POST['save']..

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2008
    Messages
    7
    D�tails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Par d�faut Ca avance...faut faire l'autre colonne
    ce que je souhaite faire :
    http://www.dhtmlgoodies.com/scripts/...ag-drop-2.html

    Nikel d-rek, j'ai fais ce que tu m'as dit et �a fonctionne, je retrouve bien les noms des PC dans ma table.

    Cependant j'ai un probl�me, car ce que je fais me permet d'ins�rer les noms des PC qui se trouvent dans la DIV "dropContent" qui est la colonne de gauche...ce qui n'est pas le but final car je veux ceux de la colonne de droite mais je voulais d�j� tester le code pour voir si j'arrivais � faire de l'ajax et donc � sauvegarder les noms d'ordinateurs.

    Maintenant que �a marche je m'�tais dis que d�s que je changerais par dropContent2 qui correspond � la DIV de la colonne de droite �a marcherait toujours !!Mais NON !! lol
    Quand je d�place mes �l�ments dans la colonnes de droite et que je regarde le code source et ben dropContent2 est toujours vide alors que j'ai bien des �l�ments dedans ! Ce doit �tre la faute du drag & drop qui en fait ne modifie rien � la page... Mais comment je peux r�cup�rer les �l�ments dans la colonne droite ? ou alors faudrait ke j'ex�cute le script d�s que je l�che l'�l�ment dans la colonne de droite ?

    Que faire ? Faudrait peut �tre que je mette ma fonction dans une autre fonction du drag and drop ?
    Vous pouvez t�l�charger l'exemple de drag & drop ici :
    http://www.dhtmlgoodies.com/index.ht...ag-drop-custom

    merci

Discussions similaires

  1. [Toutes versions] Requete Insert SQL direct
    Par xtenseadsl dans le forum Requ�tes et SQL.
    R�ponses: 5
    Dernier message: 02/02/2017, 18h29
  2. [2008] Requete Insertion sql server
    Par judefei dans le forum D�veloppement
    R�ponses: 2
    Dernier message: 04/12/2013, 07h21
  3. [WD11] Requete Insertion SQL Serveur
    Par serge__g dans le forum WinDev
    R�ponses: 12
    Dernier message: 03/03/2010, 09h55
  4. [AJAX] [PHP] Lourde Requ�te INSERT, header ou ajax
    Par speedev dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 10/10/2006, 11h28
  5. [SQL] requete INSERT possible?
    Par clad523 dans le forum Langage SQL
    R�ponses: 3
    Dernier message: 03/08/2005, 15h42

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