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

Langage PHP Discussion :

[PHP-JS] Liste de choix est redirection


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 109
    Points : 39
    Points
    39
    Par défaut [PHP-JS] Liste de choix est redirection
    Bonjour,
    Je présente mon problème : j’ai une première liste déroulante selon le choix d’utilisateur sur celle ci je vais générer une deuxième paire de listes deroulantes et a travers de l’un de ces derniers est après le choix d’utilisateur je vais générer une troisième paire de liste déroulante et tous ça grâce a un petit script js de redirection, tout en gardant les choix de l’utilisateur auparavant. pour le premier cas j réussi a le faire tandis que pour le deuxième toute la redirection se bloque carrément .
    Voici 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
    28
    29
    30
    31
    32
    33
    34
    35
     
    <form name="form" method="get" action="ma_page_resultat.php">
     
        <select size="1" name="chambre" onchange="return redirect();">
               <option value="1" <? if($chambre ==1)echo 'selected';?>>1</option>
               <option value="2" <? if($chambre ==2)echo 'selected';?>>2</option>
               <option value="3" <? if($chambre ==3)echo 'selected';?>>3</option>
        </select>
    	<? if($chambre){
    		 for ($i=1;$i<$ chambre;$i++) {
    		<select size="1" name="<? echo'adu'.$i;?>">
                                    <option value="1">1</option>
                                    <option value="2">2</option>
                                    <option value="3">3</option>
                    </select>
     
    	<select name="<? enfant.$i;?>" size="1" onChange="return redirect();">
    		   <option value=""<? if($ent1==0)echo 'selected';?>>0</option>
                       <option value="1"<? if($ent1==1)echo 'selected';?>>1</option>
                       <option value="2"<? if($ent1==2)echo 'selected';?>>2</option>
                       <option value="3"<? if($ent1==3)echo 'selected';?>>3</option>
            </select>
    <? }}
       if (($ent1)||($ent2)||($ent3))
         {
    	    <? for($j=0;$j<$ent;$j++)
    		{ ?>
    		<select size=1 name="age<? echo ($j+1);?>">
                                    <option value="" selected>?</option>
                                    <option value="2">2</option>
    		               <option value="3">3</option>
                   </select></td>
    	    <? }
        }?>
    </form>
    est voici la fonction js(redirect):
    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 redirect()
    { 
    var red="ma_page.php";
     
    if (document.form.chambre.value!='')
    {
    red=red+"& chambre ="+document.form.chambre.value;
    }
    if (document.form.enfant1.value!='')
    {
    red=red+"&ent="+document.form.enfant1.value;
    }
    location.href=red;
    }
    j’espere ke j’été clair.

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Bonjour

    rien qu'en voyant la coloration du code dans ton post, je peux te dire qu'il ya un problème de "" ça ne résoudra peut-être pas grand-chose, mais ça évitera au moins davantage de bugs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <select name="<? enfant.$i;?>" size="1" onChange="return redirect();">
    //au lieu de :
    <select name="<? enfant.$i;?> “size="1" onChange="return redirect();">
    Bon courage !
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 109
    Points : 39
    Points
    39
    Par défaut
    pour la coloration du code c une erreur de frappe ki s'y glisser
    j rectifié le tir mais ça rien donner

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Sauf erreur de ma part, dans ta fonction redirect, tu passes soit la valeur de chambre soit la valeur de ent. Peut-être que ça risque d'entrainer un problème.

    Mais le truc qui doit faire planter le reste c'est qu'il ya une incohérence au niveau des variables enfanti, enfi et enti:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // dans le formulaire :
    <select name="<? enfant.$i;?>" size="1" onChange="return redirect();">
      <option value=""<? if($ent1==0)echo 'selected';?>>0</option>
     
    // et dans la fonction :
    if (document.form.enf1.value!='')
    {
    red=red+"&ent="+document.form.enf.value;
    }
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Nouveau membre du Club
    Inscrit en
    Janvier 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 109
    Points : 39
    Points
    39
    Par défaut
    pour la fonction de redirection,elle teste sur le contenu des combobox s'il a changé donc on va le conctener dans l'url, pour une utilisation ulterieure,
    concernant enfanti et enti , la différence c que enfanti est le nom du combobox alors que enti est le nom de la variable dans l'url, je les nommé différemment pour qu'il n'aura pas de chauvauchement des variables
    pour enfi c une erreur de ma part.

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Il me semble qu'une url de passage par get a cette structure :
    nom_de_page?var1=val1&var2=val2
    Vu la façon dont tu construit ton url, il n'y a de ? nulle part. Le problème vient peut-être de là...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Nouveau membre du Club
    Inscrit en
    Janvier 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 109
    Points : 39
    Points
    39
    Par défaut
    ton hypothèse est vrai Celira , mais en réalité mon url de redirection débute avec ? , pour raison d'encombrement de code (le post va devenir trop long) j’ai enlever certains parametres.
    est voici toute la fonction:
    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
     
    function redirect()
    { 
    var red="ma_page.php";
     
    red=red+"?reg="+document.form.region.value;
     
    if (document.form.date.value!='')
    {
    red=red+"&arr="+document.form.date.value;
    }
    if (document.form.date2.value!='')
    {
    red=red+"&dep="+document.form.date2.value;
    }
    if (document.form.nbre_nui.value!='')
    {
    red=red+"&nui="+document.form.nbre_nui.value;
    }
    if (document.form.chambre.value!='')
    {
    red=red+"&cha="+document.form.chambre.value;
    }
    if (document.form.adu.value!='')
    {
    red=red+"&adt="+document.form.adu.value;
    }
    if (document.form.enfant1.value!='')
    {
    red=red+"&ent="+document.form.enfant1.value;
    }
     
    location.href=red;
    }

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 498
    Points : 461
    Points
    461
    Par défaut
    Autre hypothèse : tu n'as pas une erreur lors de l'éxécution de ta fonction javascript quand une de tes valeurs n'est pas défini? Au lieu d'un test brut comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (document.form.ent.value!='')
    , ne faut-il pas préférer un getElementsByName()? ou alors ajouter dans ton formulaire des
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type= "hidden" name="ent">
    lorsque tu n'affiche pas tes SELECT.

  9. #9
    Nouveau membre du Club
    Inscrit en
    Janvier 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 109
    Points : 39
    Points
    39
    Par défaut
    j pa bien compri ta remarque, mais en realité il ya un test en php c la variable est envoyé en url , il y'aura l'affichage du select sinon la select ne sera pas afficher

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 498
    Points : 461
    Points
    461
    Par défaut
    Quand j'exécute ton code dans un explorateur, j'ai la remarque suivante :
    document.form.enf.value à la valeur NULL ou n'est pas un objet
    alors je te proposais de rajouter dans ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type="hidden" name="<? echo 'adu'.$i;?>">
    <input type="hidden" name="<? echo 'enf'.$i;?>
    quand tu n'affichais pas les SELECT 'adu'.$i et/ou 'enf'.$i

Discussions similaires

  1. [PHP-JS] Liste déroulante : choix multiple
    Par Alex70 dans le forum Langage
    Réponses: 8
    Dernier message: 17/04/2007, 14h04
  2. plusieurs liste de choix est-ce possible?
    Par sam_fun dans le forum Access
    Réponses: 3
    Dernier message: 24/10/2006, 22h32
  3. Tester si un choix est fait dans zone de liste
    Par Junior_jef dans le forum Access
    Réponses: 2
    Dernier message: 25/08/2006, 10h28
  4. Réponses: 5
    Dernier message: 09/05/2006, 15h57
  5. Réponses: 3
    Dernier message: 05/05/2006, 03h05

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