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] Bon de commande


Sujet :

JavaScript

  1. #1
    Membre �clair� Avatar de frog43
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    342
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par d�faut [AJAX] Bon de commande
    Bonjour � tous,

    je vous pr�sente la situation :
    Je cherche � faire un bon de commande en ligne. J'ai donc un tableau, dans la premi�re colonne se trouve un select qui permet � l'utilisateur de choisir la r�f�rence du produit. Dans la deuxi�me colonne doit s'afficher le nom du produit en fonction de la r�f�rence choisie dans le select.

    J'ai poster sur le forum php et on m'a norient� vers l'AJAX, donc je me suis document� � ce sujet mais je reste un novice en la mati�re ...

    Pour le moment j'en suis � ce stade :
    - un onChange sur le select qui appel ma fonction javascript.
    - ma fonction JS change le nom du produit gr�ce � getElementByID et innerHTML

    le souci est donc qu'il me reste � remplacer le nom par ce qui est dans la base de donn�e en fonction de la valeur du select.

    J'espere que vous arriverez � mon comprendre mon probl�me ...

    Cordialement,
    Frog.

  2. #2
    Membre �m�rite
    Avatar de efficks
    Inscrit en
    Septembre 2005
    Messages
    712
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 712
    Par d�faut
    C'est pas vraiment un probl�me!
    Tu veux savoir comment faire de l'AJAX, alors lit les tutoriaux :
    http://javascript.developpez.com/cours/#ajax

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    64
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 64
    Par d�faut
    Oui, une xmlhttprequest vers un fichier qui int�rroge ta db et renvoie le r�sultat est tr�s simple � metre en oeuvre.

    Le tuto cit� pr�cedement l'illustre tr�s bien.
    Et ce petit exemple :
    - cr�ation de la fonction de la fonction de gestion des requetes 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
    function createRequestObject(){
    	var req = false;
     
    	if(window.XMLHttpRequest){
    		req = new XMLHttpRequest();
     
    		if(req.overrideMimeType){ req.overrideMimeType('text/xml'); }
    	} 
    	else if(window.ActiveXObject){
    		try{ req = new ActiveXObject("Msxml2.XMLHTTP"); }
    		catch(e){
    			try{ req = new ActiveXObject("Microsoft.XMLHTTP"); }
    			catch(e){}
    		}
    	}
     
    	if(!req){
    		document.getElementById('progress_info').innerHTML = "Erreur : Votre navigateur ne supporte pas AJAX";
    		return false;
    	}
    	else{ return req; }	
    }
    Envoie des donn�es au fichier php via XMLHttpRequest :
    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
    function compteur(id){
    		var req = createRequestObject();       //On lance une requete xmlhttprequest
    		// Gestion des resultats de la requete
    			req.onreadystatechange = function() {             // On défini ce qu'on va faire quand on aura la réponse
    			if(req.readyState == 4 && req.status == 200)   // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    	         {
    				affiche = req.responseText;                // On se sert de innerHTML pour rajouter les options a la liste
    	            document.getElementById('erreur').innerHTML= affiche;
    	         }
    			}
    		var URL='inc_admin/compteur.php'
    		req.open("POST",URL,true); // Envoie de la requete en POST
    		req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');	// ne pas oublier ça pour le post
    		req.send("id="+id);	// envoie des variables = $_POST['clique']=lien
    		}
    Et le fichier php qui recoit la requete et envoie les �ventuels r�sultats :
    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
    <?php
            header('Content-Type: text/html; charset=ISO-8859-15');
            require('bdparams.php');
            mysql_select_db($bdd,$db) or die('erreur de selection'.mysql_error());
            $id=addslashes($_POST['id']);
            $sql="SELECT telecharges FROM documents WHERE id=".$id.";";
            $req=mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
            while ($ligne=mysql_fetch_array($req))
            {
            $compt=$ligne['telecharges']+1;
            }
            $sql="UPDATE documents SET telecharges='$compt' WHERE id=".$id.";";
            $req=mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    echo 'compteur incremente';
    ?>
    ceci n'est qu'un bout de code d'exemple (bas� sur un compteur) et est bien entendu � s�curis�.

  4. #4
    Membre �clair� Avatar de frog43
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    342
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par d�faut
    J'ai bien d�j� lu les tuto, je crois que j'ai compris le principe ... Je n'arrive pas � l'appliquer � mon cas, je continue � apprendre ...

    Merci pour l'exemple je comprend un peu mieux, j'essaye de faire quelque chose avec tout ceci.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    64
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 64
    Par d�faut
    qu'est ce qu'il ne colle pas dans ton cas ?

  6. #6
    Membre �clair� Avatar de frog43
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    342
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par d�faut
    Je rappel que je suis d�butant AJAX ...

    J'ai voulu faire le m�me code que le tuto (celui avec les alert) mais rien ne marche ...

    Voici mon code 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
     
    function ajax(){
    	//document.getElementById("titre_livre").innerHTML="youhou";
    	var xhr=null;
     
        if (window.XMLHttpRequest) { 
           xhr = new XMLHttpRequest();
        	}
        	else if (window.ActiveXObject){
            	xhr = new ActiveXObject("Microsoft.XMLHTTP");
        	}
        	//on définit l'appel de la fonction au retour serveur
        	xhr.onreadystatechange = function() { alert_ajax(xhr); };
     
        	//on appelle le fichier reponse.txt
        	xhr.open("GET", "reponse.php", true);
        	xhr.send(null);
    	}
     
    	function alert_ajax(xhr){
    		var docXML= xhr.responseXML;
    		var items = docXML.getElementsByTagName("donnee")
    		//on fait juste une boucle sur chaque element "donnee" trouvé
    		for (i=0;i<items.length;i++){
    			alert (items.item(i).firstChild.data);
    		}
    	}
    Le code php :
    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
     
    <?php
    header('Content-Type: text/xml'); 
    echo "<?xml version=\"1.0\"?>\n";
    echo "<exemple>\n";
     
    //paramètres persos
    $host="localhost";//voir hébergeur
    $user="root";//login : vide ou root en local
    $pass="";//password ou vide en local
    $bdd="vialaron"// nom BDD
    //connexion
    mysql_connect($host,$user,$pass)
    or die("Impossible de se connecter");
    mysql_select_db("$bdd")
    or die(mysql_error());
     
    //on lance la requette
    $query="SELECT `titre` FROM livres";
    $result=mysql_query($query);
    //On boucle sur le resultat
    while ($row = mysql_fetch_array($result))
    {
    	echo "<donnee>" . $row[0] . "</donnee>\n";
    }
    echo "</exemple>\n";
    ?>
    et l'action en HTML :

    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
     
    <select name='ref' size='1' onChange="javascript:ajax();">
    							<option>--</option>
    							<?
    							//connexion
    							mysql_connect($host,$user,$pass)
    							or die("Impossible de se connecter");
    							mysql_select_db("$bdd")
    							or die(mysql_error());
    							//récupération du nb de ref
    							$query="SELECT `ref` FROM `livres`"; 
    							$result=mysql_query($query);
    							$nb_ref=mysql_num_rows($result);
    							//affichage
    							for($a=1; $a<=$nb_ref; $a++){
    								echo"<option>$a</option>";
    							}
    							?>
    						</select>
    Si sa peut te servir pour m'aider ... Dans un premier temps je voulais juste faire apparaitre dans mes alertes le contenu de ma base � moi avant de faire plus ...

    Cordialement ...
    Frog

  7. #7
    Membre �clair� Avatar de frog43
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    342
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par d�faut
    J'ai eu le temps de me repencher sur ce probl�me, je n'arrive pas � voir ou est l'erreur. Dans le code JS j'ai placait des alert pour voir jusqu'ou le script aller ... Il marche bien c'est juste que mes donn�es ne sont pas r�cup�rer je pense alors ... Je regarde du cot� du php donc mais je ne trouve toujours pas ....

    Personne pour m'aider ....

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Source de bon de commande
    Par liop49 dans le forum Access
    R�ponses: 3
    Dernier message: 05/07/2007, 11h47
  2. Avis sur bon de commande
    Par frog43 dans le forum Mon site
    R�ponses: 4
    Dernier message: 13/04/2007, 11h27
  3. Archivage et Impression de bons de commande
    Par jeep6259 dans le forum Excel
    R�ponses: 1
    Dernier message: 10/04/2007, 18h59
  4. double saisie du bon de commande
    Par guijomik dans le forum IHM
    R�ponses: 11
    Dernier message: 06/03/2007, 14h55
  5. [VBA-E]Automatisation d'un bon de commande
    Par Lexot2 dans le forum Macros et VBA Excel
    R�ponses: 6
    Dernier message: 06/10/2006, 12h17

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