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] Formulaire dynamique - R�cup�ration de variable


Sujet :

JavaScript

  1. #1
    Membre � l'essai
    Inscrit en
    Mai 2007
    Messages
    5
    D�tails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Par d�faut [AJAX] Formulaire dynamique - R�cup�ration de variable
    Bonjour a tous,

    Je travail pr�sentement sur un formulaire avec liste d�roulante dynamique. Le code marche a merveille. Seulement, j'ai besoin de la selection de ma premiere liste pour le r�sultat final. Je vous met le code et j'explique par la suite.

    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    function SelectSouscat($catid)
    {	
       $options="";
       // cr�� un nouvel objet permettant d'envoyer une r�ponse au c�t� client
       $objResponse = new xajaxResponse();
       // on selectionne les sous-cat�gorie en fonction de l'annee de la cat�gorie m�re
       $sql="SELECT annee, modele FROM yamaha WHERE annee = '".$catid."' ORDER BY modele ASC";
       $req=mysql_query($sql);
        $options='&nbsp;Modele: <select onchange="xajax_SelectSiege(this.value)"><option value="">Choose your model</option>';
       while ($souscat = mysql_fetch_array($req))
       {
          // on place toutes les sous-cat�gories dans des options valables pour la liste SELECT
          $options .= '<option value="'.$souscat['modele'].'">' . $souscat['modele'] . '</option>';
          						
       }
       $options .='</select>';
       // l'Ajax remplacera le innerHTML (html int�rieur) de la liste_souscat pour y mettre $options
       $objResponse->addAssign("liste_souscat","innerHTML",$options);
       // envoie la r�ponse en XML
       return $objResponse->getXML();
    
    }
    
    
    ######################################################################
    #                   LE R�SULTAT DU SI�GE D�SIR�                      #
    ######################################################################
    
    
    function SelectSiege($souscate, $catid)
    {
       $options2="";
       // cr�� un nouvel objet permettant d'envoyer une r�ponse au c�t� client
       $objResponse2 = new xajaxResponse();
       // on selectionne les sous-cat�gorie en fonction de l'id de la cat�gorie m�re
       $sql2=" SELECT annee, yamaha.modele, No, image_no, image_no2, photo2, yamaha.siege, siege_yamaha.description, siege_yamaha.photo FROM yamaha, siege_yamaha WHERE modele = '"  .$souscate."' AND yamaha.siege = siege_yamaha.siege_produit AND annee = '".$catid."' GROUP BY siege ";
       $req2=mysql_query($sql2);
       
       while ($souscat1 = mysql_fetch_array($req2))
       {
          // on place toutes les sous-cat�gories dans des options valables pour la liste SELECT
         	 
           $options2 .= "<h2>". $souscat1['No']." . " . $souscat1['siege']." </h2><p>". $souscat1['description']."</p> <a href='#' onclick='monpopup(" . $souscat1['image_no'].")'><img class='img_produits' src='". $souscat1['photo']."'/></a><a href='#' onclick='monpopup(" . $souscat1['image_no2'].")'><img class='img_produits' src='". $souscat1['photo2']."'/></a>";
       }
    	
       // l'Ajax remplacera le innerHTML (html int�rieur) de la liste_souscat pour y mettre $options
       $objResponse2->addAssign("reponse","innerHTML",$options2);
       // envoie la r�ponse en XML
       return $objResponse2->getXML();
    
    }
    
    
    
    ######################################################################
    #                   ENREGISTREMENT DES FCT AJAX                      #
    ######################################################################
    
    
    
    $xajax = new xajax();
    //$xajax->debugOn();
    $xajax->registerFunction("SelectSouscat");
    $xajax->registerFunction("SelectSiege");
    $xajax->processRequests();

    Voici mon code 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
    <form id="testForm1">
    Ann�e: <select id="liste_cat" onchange="xajax_SelectSouscat(this.value)">
    <option value="" ></option>
    <?php
    $sql="SELECT DISTINCT  annee FROM annee_yam ORDER BY annee DESC";
    	$req=mysql_query($sql) or die(mysql_error());
    	while($cat = mysql_fetch_array($req))
    	{
    	echo '<option value="'.$cat['annee'].'" >' . $cat['annee'] . '</option>';
    	}
    	?>
    	
    <div id="liste_souscat">							
    <select onchange="xajax_SelectSiege(this.value, document.getElementById('liste_cat').value)">						</select>
    													</div>
    <div id="reponse"></div>
    Alors je voulais simplement reprendre la variable $catid (qui correspond a l'�l�ment selectionner de ma premier liste) de ma fonction SelectSouscat car j'en ai de besoin pour ma deuxieme liste. Pour s'y faire, jai mit document.getElementById('liste_cat').value dans le onchange de ma deuxieme liste. Le code me semblait bon mais lorsque je lance je choisi un modele (de ma 2ieme liste) une fenetre alert m'apparait et me dise qu'il me manque l'argument 2 dans la fonction SelectSiege. Je ne sais pas si je m'explique bien.
    Quelqu'un pourrait m'aider ?

  2. #2
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par d�faut
    Si j'ai bien compris tu veux r�cup�rer la valeur d'un select?

    Si c'est le cas, je suis pas sur que la fa�on dont tu le fasses soit bonne. Essaie ca:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    <select onchange="xajax_SelectSiege(this.value, document.getElementById('liste_cat').options[ document.getElementById('liste_cat').selectedIndex].value)">

  3. #3
    Membre � l'essai
    Inscrit en
    Mai 2007
    Messages
    5
    D�tails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Par d�faut
    Bonjour,
    merci de m'avoir r�pondu. J'ai essayer de votre fa�on et sa ne marche aps non plus.

    Lorsque je lance ma page et que je choisi dans ma deuxieme liste. Il m'affiche un message qui m'indique:

    Warning: Missing argument 2 for SelectSiege() on line 55. La ligne 55 est celle ci:

    function SelectSiege($souscate, $catid)

    La fonction ne veux pas passer le deuxieme parametre ? Ou alors c'est au moment du onchange qu'il y a un erreur qui fait en sorte que la function SelectSiege ne retrouve pas le deuxieme argument ? P-e que c'est lorsque j'enregistre la fonction SelectSiege ?

  4. #4
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Bonjour,
    si tu fermais ton select "liste_cat", il aurait s�rement moins de mal � en r�cup�rer la value

    A+

  5. #5
    Membre � l'essai
    Inscrit en
    Mai 2007
    Messages
    5
    D�tails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Par d�faut
    Bonjour,

    j'avais fermer mon select chez moi. C'est surement au faute lors de ma retranscription de script ici. Merci pareil, c'est tr�s appr�cier d'avoir de l'aide

    Mais j'ai encore ce probl�me. Pourquoi ma function SelectSiege prend seulement que mon premier argument et ne vois pas l'autre ?

  6. #6
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Dans la mesure o� c'est une erreur JS, le code g�n�r� (JS + HTML) serait beaucoup + utile (et efficace quand, comme moi, on connait pas Xajax).

    Nb : s'il te signale une erreur sur SelectSiege() (alors que tu appelles ajax_SelectSiege() ) c'est peut-�tre un pb d'impl�mentation de ta librairie, non ?

  7. #7
    Membre � l'essai
    Inscrit en
    Mai 2007
    Messages
    5
    D�tails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Par d�faut
    Je crois avoir r�ussi a arranger un gros bug. Il ne me sort plus l'erreur comme de quoi il ne trouve pas le deuxieme argument. Dans ma fonction SelectSouscat j'ai ajouter une parti de code.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    $options='&nbsp;Modeles: <select onchange="xajax_SelectSiege(this.value, document.getElementById(\'liste_cat\').value))"><option value="">Choose your model</option>';
    Au lieu de

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    $options='&nbsp;Modeles: <select onchange="xajax_SelectSiege(this.value)"><option value="">Choose your model</option>';

    Le probl�me maintenant: Il ne me sors aucun r�sultat; La premier liste apparait, ma deuxieme liste �galement mais le r�sultat de <div id='reponse'> ne m'apparait pas. Je ne sais pas si quelqu'un comprend ?

  8. #8
    Membre � l'essai
    Inscrit en
    Mai 2007
    Messages
    5
    D�tails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Par d�faut
    Oups une parenthese de trop

    Tout marche a merveille

    Merci a tous de m'avoir aider

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

Discussions similaires

  1. [AJAX] Formulaire dynamique et datepicker
    Par Mordok dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 08/06/2012, 20h11
  2. [AJAX] Formulaire dynamique
    Par kikou732 dans le forum AJAX
    R�ponses: 0
    Dernier message: 26/12/2011, 22h23
  3. Formulaire dynamique (modifiable par variables)
    Par remus69 dans le forum G�n�ral JavaScript
    R�ponses: 11
    Dernier message: 08/07/2010, 17h14
  4. R�cup�ration de variable d'un formulaire dynamique
    Par The metalhorseman dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 16/02/2007, 11h29
  5. R�ponses: 7
    Dernier message: 24/05/2004, 17h51

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