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

AJAX Discussion :

[AJAX] Récupérer valeurs dans formulaire


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 25
    Par défaut [AJAX] Récupérer valeurs dans formulaire
    Bonjour,

    Je débute en Ajax et je tente de réaliser le traitement suivant :

    Après avoir encodé la référence d'un produit, j'essaye d'afficher son libellé (plus tard son prix) via un script Ajax et un appel php vers ma db.

    çà ne fonctionne pas alors que le module php me donne le bon résultat.

    Merci de m'aider


    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
    45
    46
    47
    48
    49
     
    <script language="javascript" type="text/javascript">
    <!-- 
    function getXhr()
    {
    //Browser Support Code
    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
    }
     
     
     
    function ajax_fct(){
    	var xhr = getXhr()
     
     
    	// Create a function that will receive data sent from the server
    	ajaxRequest.onreadystatechange = function()
    	{
    		if(ajaxRequest.readyState == 4){
    			document.myForm.libelle.value = ajaxRequest.responseText;
    		}
    	}
    	var code_prod = document.getElementByName('code_prod').value;
     
    	var queryString = "?code_prod=" + code_pro;
    	ajaxRequest.open("GET", "rech_infos.php" + queryString, true);
    	ajaxRequest.send(null); 
    }
     
    //-->
    </script>

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Il faudrais voir pas quelle saisie,ou événement AJAX est appelé
    Donnes nous plus de code de cette page et celui du PHP appelé

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 25
    Par défaut
    Voici les codes demandés Christel :

    Code html : 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
     
    <form name='myform' action='' method='post'>
    		<p><label>Client :</label><input type='text' name='numero' id='cherche'></input>
    		<label>Nom :</label><input type='text' id='nom' name='nom' ></input>
    		<label>Prénom :</label><input type='text' id='prenom' name='prenom' ></input></p>
     
    			<p>
    			<label>Référence :</label><input type='text' name='code_prod' id='rech_prod2' onkeyup='ajax_fct()' ></input>
    			<label>Libellé :</label><input type='text'  name='libelle' ></input>
    			<label>Prix :</label><input type='text' name='prix' ></input>
    			<label>Qté :</label><input type='text' name='qte' onkeyup = "javascript:calcul('tot_lg');"></input>
    			<label>Total :</label><input type='text' class='tot_lg' name='tot_lg'  value="<?PHP echo $tot_lg ?>" readonly></input>
    			</p>
     
     
    		<p>
    		<label>Total commande :</label><input type='text' name='tot_cmd' id='tot_cmd' readonly></input>
    		</p>
     
    	</form>


    Code js : 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
    45
    46
    47
    48
    49
     
    <script language="javascript" type="text/javascript">
    <!-- 
    function getXhr()
    {
    //Browser Support Code
    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
    }
     
     
     
    function ajax_fct(){
    	var xhr = getXhr()
     
     
    	// Create a function that will receive data sent from the server
    	ajaxRequest.onreadystatechange = function()
    	{
    		if(ajaxRequest.readyState == 4){
    			document.myForm.libelle.value = ajaxRequest.responseText;
    		}
    	}
    	var code_prod = document.getElementByName('code_prod').value;
     
    	var queryString = "?code_prod=" + code_pro;
    	ajaxRequest.open("GET", "rech_infos.php" + queryString, true);
    	ajaxRequest.send(null); 
    }
     
    //-->
    </script>

    Code php : 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
     
    <?php 
    include ("./include/mes_fonctions.php"); 
    open_db();
     
    $term=$_GET["code_prod"];  
    echo $term;
    $query=mysql_query("SELECT * FROM catalogue where cat_ref = $term "); 
    echo $query;
    if ( ! $query )
    	die ('mysql_query error SELECT catalogue' . mysql_error());
     
     
    $row=mysql_fetch_array($query);
     
    echo $row['cat_libelle'];
     
    exit;
    ?>

  4. #4
    Invité
    Invité(e)
    Par défaut
    Ton code est un vrais mystère !
    par exemple d'ou vient $tot_lg
    D'autre part l'appel AJAX n'est pas conforme, revois taa syntaxe

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    var xhr = getXhr()


    // Create a function that will receive data sent from the server
    ajaxRequest.onreadystatechange = function()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var ajaxRequest= getXhr()
     
     
    	// Create a function that will receive data sent from the server
    	ajaxRequest.onreadystatechange = function()
    var code_prod = document.getElementByName('code_prod').value;
    c'est getElementsByName qui existe et la méthode retourne une collection, donc il faut préciser l'indice. Ton input a un id, utilise getElementById().


    A+.

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    <form name='myform' action='' method='post'>
    document.myForm.libelle.value = ajaxRequest.responseText;
    Javascript est sensible à la casse.
    if(ajaxRequest.readyState == 4){
    document.myForm.libelle.value = ajaxRequest.responseText;
    }
    Tu dois tester aussi si la requête Ajax a bien aboutit ou bien une erreur est servenue.

    A+.

Discussions similaires

  1. Récupérer valeur champ formulaire dans une variable
    Par majudis dans le forum VBA Access
    Réponses: 3
    Dernier message: 28/05/2016, 08h15
  2. [XL-2010]Récupérer valeur champ formulaire dans une variable
    Par sasafca dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/04/2013, 10h58
  3. [AJAX] Récupérer valeurs formulaires
    Par Mister Nono dans le forum Struts 1
    Réponses: 5
    Dernier message: 19/04/2007, 17h23
  4. Récupérer valeur du formulaire
    Par acado dans le forum Langage
    Réponses: 4
    Dernier message: 02/05/2006, 15h00
  5. PB de retour de valeur dans formulaire
    Par Poutchou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 05/04/2006, 16h10

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