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 :

[PHP-JS] Afficher différents champs de formulaire selon id et liste de sélection


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 5
    Par défaut [PHP-JS] Afficher différents champs de formulaire selon id et liste de sélection
    Bonjour

    J'ai une fonction php manage0bj avec une liste déroulante de ce type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $t[] = mosHTML::makeOption('0',_EAB_OBJ_TYPE1);
    			$t[] = mosHTML::makeOption('1',_EAB_OBJ_TYPE2);
    			$t[] = mosHTML::makeOption('2',_EAB_OBJ_TYPE3);
    			$t[] = mosHTML::makeOption('3',_EAB_OBJ_TYPE4);
    			$t[] = mosHTML::makeOption('4',_EAB_OBJ_TYPE5);
    			$lists['type'] = mosHTML::selectList($t,'type','id="type" class="inputbox" size="1" onChange="javascript:changeGUI(document.getElementById(\'type\').selectedIndex);" ', 'value', 'text', $obj->type );
    Que j'ai modifié comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $t[] = mosHTML::makeOption(_EAB_OBJ_TYPE1);
    			$t[] = mosHTML::makeOption(_EAB_OBJ_TYPE2);
    			$t[] = mosHTML::makeOption(_EAB_OBJ_TYPE3);
    			$t[] = mosHTML::makeOption(_EAB_OBJ_TYPE4);
    			$t[] = mosHTML::makeOption(_EAB_OBJ_TYPE5);
    			$lists['type'] = mosHTML::selectList($t,'type','id="type" class="inputbox" size="1" onChange="javascript:changeGUI(document.getElementById(\'type\').selectedIndex);" ', 'value', 'text', $obj->type );
    le script commence ainsi
    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
     
     <script language="javascript" type="text/javascript">
    <!--        	
    function submitbutton(pressbutton) {
    if( pressbutton == 'media' ) {				
    popupWindow('<?php echo $mosConfig_live_site; ?>/admin.gallery.php?action=init&objid=<?php echo $obj->id;?>&css=<?php echo $params['cur_templ']; ?>','titre',750,580,'no'); 
    }			
    if ( pressbutton == 'cancel' ) {
    submitform( pressbutton );
    return;
    }				
    if( pressbutton == 'save' || pressbutton == 'apply') {
     
    var form = document.adminForm;
     
    if (form.cat.value == 0){
    alert( "<?php echo _EAB_OBJ_ERROR31; ?>" );
    } else if (form.type.value == 0 ) {
    alert ("<?php echo _EAB_OBJ_TYPE_ERROR; ?>");      	   		
          	   			}
    Je dois faire apparaitre différents champs suivant le type en faisant appel à une id de cette façon:

    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 changeGUI(tp) {    		 		
     
    /*** Single-Type ***/
     t1a = document.getElementById('type1a'); t1b = document.getElementById('type1b');
     
    /** current type **/
    ctp = document.getElementById('type').selectedIndex;
    	warning = document.getElementById('warn');
     
    if(tp == null && ctp == 0 ){
    	warning.style.display = "block"; 
    	}
    else{
    	warning.style.display = "none"; 
    	}
    mon problème ce situe à ce niveau:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if(tp == 1) {
    /*** Single-Type  For Rent ***/
    	t1a.style.display = "block"; t1b.style.display = "block";
      	t2b.style.display = "none";
      	t2c.style.display = "none"; t2d.style.display = "none";  				
      	t3a.style.display = "block";
    	t4a.style.display = "none"; t4b.style.display = "block";
    Je ne sais pas par quoi remplacer (tp==1) ce qui pour moi correspond à ($t[] = mosHTML::makeOption(EAB_OBJ_TYPE2);pour appeler l'id correspondant

    exemple code html:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <div id="type1a" class="tr1">
    div class="td1"><b><?php echo _EAB_OBJ_ENRRMS; ?></b></div>
    <div class="td2"><input type="text" name="rooms" size="5" class="inputbox" maxlength="5" value="<?php echo $obj->rooms; ?>" /></div>
    <div class="td1"><b><?php echo _EAB_OBJ_EDWGN; ?></b></div>
    <div class="td2"><input type="text" name="space" size="7" class="inputbox" maxlength="10" value="<?php echo $obj->space; ?>" />&nbsp;<?php echo $params['measure'];?></div>
    </div>
    Merci pour votre aide, en espérant avoir été assez clair

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 5
    Par défaut
    J'ai fait ceci mais ça ne semble pas être bon ex:

    if(tp == "_EAB_OBJ_TYPE2")
    car l'id ="type1a" ne s'fafiche pas

    Si vous avez une idée j'en serais vraiment ravis car je suis un nase en javascript

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 5
    Par défaut
    Ou alors le blem vient d'ailleurs ?

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 5
    Par défaut
    Bon ben j'ai pas de chance avec ma question y a pas une âme charitable pour venir à mon secour ...

  5. #5
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    trop de code php, on a du mal à lire...
    que donne
    alert(tp)
    à quel endroit c'est appelé?
    ?

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 5
    Par défaut
    c'est appelé de cette manière:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    else if (form.type.value == 0 ) {
    alert ("<?php echo _EAB_OBJ_TYPE_ERROR; ?>");      	   		
    }
    et ensuite:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function changeGUI(tp) { 
     
      t1a = document.getElementById('type1a'); t1b = document.getElementById('type1b');
    appelé de cette façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if(tp == 1) {
    	t1a.style.display = "block"; t1b.style.display = "block";
      	t2b.style.display = "none";
    Merci, c'est vrai c'est un peu long.J'ai pourtant essayé de faire le plus clair possible, désolé!

Discussions similaires

  1. Réponses: 7
    Dernier message: 15/03/2012, 10h37
  2. afficher un champ de formulaire
    Par nlefebvre1 dans le forum jQuery
    Réponses: 2
    Dernier message: 08/07/2011, 16h57
  3. Réponses: 2
    Dernier message: 21/07/2010, 14h45
  4. php et récupération des champs du formulaire
    Par kadiato dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 07/05/2009, 16h45
  5. Afficher certains champ de formulaire
    Par Daniel MOREAU dans le forum IHM
    Réponses: 1
    Dernier message: 07/05/2007, 23h21

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