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] liste lié a un champ text


Sujet :

JavaScript

  1. #1
    Membre du Club
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    65
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 65
    Points : 43
    Points
    43
    Par défaut [AJAX] liste lié a un champ text
    bonjour,

    j'ai un probleme avec une variables post. Je n'arrive pas a la faire passer d'un fichier a l'autre

    voici mon fichier de "main" ->ram.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
    28
    29
    30
    31
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    		<title>Tutoriel Ajax (XHTML + JavaScript + XML)</title>
    		<script type="text/javascript" src="../tuto.js"></script>
    </head>
    <body>
    		<form method="post">
    			<fieldset style="width: 500px">
    				<legend>Générateur de prix</legend>
    				<label>Ram</label>
    				<select name='ram' id='ram' onchange='go()'>
    					<option value='-1'>Aucune</option>
    					<?
    						require 'ajax.php';
    						connect();
    						reqSql();
    						//$_POST["nom"]="2 giga";
    						echo 	$_POST["nom"];
    						echo "
    				</select>
    				<label>Descriptions</label>
    			<div id='livre' style='display:inline'>";
    				  include 'desc.php';
    				 ?>
    			  </div>
    		            </fieldset>
    </form>
    </body>
    </html>
    voici mon fichier .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
    44
     
    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){
    						leselect = xhr.responseText;
    						// On se sert de innerHTML pour rajouter les options a la liste
    						document.getElementById('desc').innerHTML = leselect;
    					}
    				}
     
    				// Ici on va voir comment faire du post
    				xhr.open("POST","desc.php",true);
    				// ne pas oublier ça pour le post
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				// ne pas oublier de poster les arguments
    				// ici, l'id de l'auteur
    				sel = document.getElementById('nom');
    				nom = sel.options[sel.selectedIndex].value;
    				xhr.send("nom="+nom);
    			}
    voici mon fichier qui est censé envoyé la variable post --> ajax.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
     
    <?
    	function connect(){
    	mysql_connect("localhost","root","");
    	mysql_select_db("asocom");
    	}
     
    	function reqSql(){
    	$res = mysql_query("SELECT * FROM conf_ram ORDER BY nom");
    	while($row = mysql_fetch_assoc($res)){
    			echo "<option value='".$row["id"]."'>".$row["nom"]."</option>";
    			}
     	//return	$_POST['nom']=$row["nom"];
    	}
     
    ?>
    voici le fichier qui est censé recevoir la variable $_POST['nom'] ->desc.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
     
    <?php
            require_once'ajax.php';
            
            echo "<textarea name='desc' cols='20' rows='20' border='0'>";
            echo ;
            if(isset($_POST["nom"])){
     
                    connect();
                            $nom=$_POST["nom"];
                    $res = mysql_query("SELECT * FROM conf_ram 
                            WHERE nom='$nom' ORDER BY nom");
                    while($row = mysql_fetch_assoc($res)){
                            echo $row["description"];
                    }
            }
            echo "</TEXTAREA>";
    ?>

    Merci

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 137
    Points : 160
    Points
    160
    Par défaut
    Salut,

    Je n'ai pas tout compris. Quelle est la première page, là où tout commence. Quel est l'enchainement de tes pages ?

  3. #3
    Membre du Club
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    65
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 65
    Points : 43
    Points
    43
    Par défaut
    ram.php correspond a la page de presentation (interface client)
    .js correspond au fonction javascript
    ajax.php la ou sont stocké les functions
    et desc.php le fichier qui me permettera d'afficher les descriptions sur la page ram.php

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 137
    Points : 160
    Points
    160
    Par défaut
    d'après ce que je vois, tu n'as pas besoin d'envoyer la variable par $_post au fichier desc à partir du fichier ajax.php.

    D'abord, dans ton fichier desc, là où tu veux afficher la description, tu dois seulement avoir Ensuite dans ton fichier .js, tu as getElementById('nom'), où est cet élément dans le fichier ram ? Ce serait pas plutot getElementById('ram') ?

    Que te dis ton navigateur lorsque tu essaie d'exécuter ta page ?

Discussions similaires

  1. Concaténer deux listes déroulantes dans un champs texte en direct
    Par arnaudperfect dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 11/12/2007, 17h50
  2. [MySQL] remplir une liste à partir d'un champs texte
    Par myinformatique dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 27/07/2007, 17h10
  3. Réponses: 10
    Dernier message: 27/03/2007, 12h21
  4. Liste déroulante remplie un champs texte
    Par tukutt dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 22/02/2007, 15h52
  5. Controler la liste deroulante d'un champs text
    Par pekka77 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 22/08/2006, 17h05

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