Changer un select en fonction d'un choix...

Changer un select en fonction d'un choix... - PHP - Programmation

Marsh Posté le 21-12-2011 à 16:23:48    

Bonjour à tous,  
 
Une chose que je n'arrive pas à faire depuis hier 12h... Je dois en fonction des onglets cliqués, changer un select. seulement je ne sais pas comment m'y prendre... En gros, si je clique sur l'onglet 1 je veux que ma balise select m'affiche les possibilités qu'offre l'onglet 1.
 
Le code est plus bas, je pense qu'il faut que je dise "Pour tel onglet tu me prend la valeur tant" mais je sais pas comment coder ça... Enfaite ces choix prennent une valeur qui est inscrite en base de donnée puis transcrit selon le chiffre en type, et sous type
 
Voile le code, dans un premier temps mes onglets :
 

Spoiler :

<ul name="n1" id="entretien-type-n1" class="petits-onglets onglets" align="left" onFocus="NiveauUn(this.form)" onChange="NiveauDeux(this.form)" style="margin-left:50px; margin-right:50px; margin-top:30px; margin-bottom:30px;">
         <li>
          <a name="n1" id="entretien-type-n1"  href="#" value=""  class="onglet">&nbsp;Entretien</a>
         </li>
         <li>
          <a name="n1" id="entretien-type-n1" href="#" value=""  class="onglet">&nbsp;Atelier</a>
         </li>
         <li>
          <a name="n1" id="entretien-type-n1" href="#" value=""  class="onglet">D&eacute;marche consultant</a>
         </li>  
         <li>  
          <a name="n1" id="entretien-type-n1" href="#" value=""  class="onglet">Interruption</a>
           
         </li>
         <li>
          <a name="n1" id="entretien-type-n1" href="#" value="" class="onglet">R&eacute;ception de documents</a>
         </li>
         <li>
          <a name="n1" id="entretien-type-n1" href="#" value=""  class="onglet">Point bilan 3/6 mois</a>
         </li>
         <li>
          <a name="n1" id="entretien-type-n1" href="#" value="" class="onglet">Invitation sp&eacute;cifique</a>
         </li>


 
Voila mon php qui Donne des valeurs aux choix, Je précise que avant les onglet c'était un autre <select>, qui changeait l'autre select... mais ça bugais..
 

Spoiler :

select name="n2" id="entretien-type-n2" class="champ champ-select champ-obligatoire"  value="<?php echo $n2 ?>" ></select>
       <?php
        $out_activ_type = $n1;
        if ($n1 == "1" || $n1 == "2" || $n1 == "4" || $n1 == "38" || ($n1 >= 6 AND $n1 <= 16) || ($n1 >= 80 AND $n1 <= 100) ) {
         $n1 = "Atelier";
         print '&nbsp;&nbsp;<b>Actuellement: </b>'.$n1.'->'.$n2.'<br />';
        }
        elseif ($n1 == "1" || $n1 == "3" || $n1 == "5" || ($n1 >= 20 AND $n1 <= 37) || ($n1 >= 200 AND $n1 <= 299) ) {
         $n1 = "Entretien";
         print '&nbsp;&nbsp;<b>Actuellement: </b>'.$n1.'->'.$n2.'<br />';
        }
        elseif ($n1 >= 300 AND $n1 <= 399) {
         $n1 = "Démarche consultant";
         print '&nbsp;&nbsp;<b>Actuellement: </b>'.$n1.'->'.$n2.'<br />';
        }
        elseif ($n1 >= 400 AND $n1 <= 499) {
         $n1 = "Interruption";
         print '&nbsp;&nbsp;<b>Actuellement: </b>'.$n1.'->'.$n2.'<br />';
        }
        elseif ($n1 >= 500 AND $n1 <= 599) {
         $n1 = "Réception de documents";
        print '&nbsp;&nbsp;<b>Actuellement: </b>'.$n1.'->'.$n2.'<br />';
        }
        elseif ($n1 >= 600 AND $n1 <= 699) {
         $n1 = "Point bilan 3/6 mois";
         print '&nbsp;&nbsp;<b>Actuellement: </b>'.$n1.'->'.$n2.'<br />';
        }
        elseif ($n1 >= 700 AND $n1 <= 799) {
         $n1 = "Invitation Spécifique";
         print '&nbsp;&nbsp;<b>Actuellement: </b>'.$n1.'->'.$n2.'<br />';
        }
        elseif ($n1 >= 800 AND $n1 <= 899) {
         $n1 = "Bilan de Compétences";
         print '&nbsp;&nbsp;<b>Actuellement: </b>'.$n1.'->'.$n2.'<br />';
        }
       ?>

Reply

Marsh Posté le 21-12-2011 à 16:23:48   

Reply

Marsh Posté le 21-12-2011 à 16:27:00    

et le Java script qui permet de faire ça, si quelqu'un peut essayer de m'aider, je galère énormément, j'ai pas encore appris le Java/php...  merci merci merci !
 
function NiveauUn(f){
 var xhr_object = null;
 if(window.XMLHttpRequest) // Firefox
  xhr_object = new XMLHttpRequest();
    else if(window.ActiveXObject) // Internet Explorer
        xhr_object = new ActiveXObject("Microsoft.XMLHTTP" );
    else{ // XMLHttpRequest non supporté par le navigateur
       alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..." );
      return;
    }
 xhr_object.open("POST", "/car/candidats/entretiens/niveau_un.php", true);
    xhr_object.onreadystatechange = function() {
     if(xhr_object.readyState == 4) eval(xhr_object.responseText);
  }
    xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded" );
    var data = "form="+f.name+"&select=n1";
    xhr_object.send(data);
}
 
function NiveauDeux(f){
 var l1    = f.elements["n1"];
 var l2    = f.elements["n2"];
 var index = l1.selectedIndex;
 if(index < 1){
    l2.options.length = 0;
 }else{
     <!-- var xhr_object = null; -->
     if(window.XMLHttpRequest) // Firefox
     xhr_object = new XMLHttpRequest();
     else if(window.ActiveXObject) // Internet Explorer
     xhr_object = new ActiveXObject("Microsoft.XMLHTTP" );
     else{ // XMLHttpRequest non supporté par le navigateur
     alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..." );
     return;
  }
  xhr_object.open("POST", "/car/candidats/entretiens/niveau_deux.php", true);
  xhr_object.onreadystatechange = function() {
     if(xhr_object.readyState == 4) eval(xhr_object.responseText);
  }
     xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded" );
     var data = "n1="+escape(l1.options[index].value)+"&form="+f.name+"&select=n2";
     xhr_object.send(data);
 }
}

Reply

Marsh Posté le 22-12-2011 à 11:17:23    

Au lieu de te prendre la tête avec les objets http request regarde du côté de jquery outil très puissant.
 
Tu pourras faire ce que tu veux sans soucis.


Message édité par Alameda le 22-12-2011 à 11:17:33
Reply

Marsh Posté le 22-12-2011 à 16:48:02    

Le problème, c'est que toute l'appli web est déja faite... En gros je suis débutant qui arrive sur une appli en php/JS :D le bordel...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed