[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:
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:
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:
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:
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:
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:
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; ?>" /> <?php echo $params['measure'];?></div>
</div> |
Merci pour votre aide, en espérant avoir été assez clair