Listes déroulantes liees dans script distant

Petit nouveau ! | 4 Messages

04 juin 2008, 11:46

Bonjour, je rencontre un problème en php et javascript dans mon stage de fin de licence. Je sèche réelement.

Voila mon problème :

A partir d'une url, saisie par un client (une entreprise X) de la société ds laquelle je suis, inclue ds la page de son site, un script php est appélé et permet de générer un menu html en fonction des parametres de cette derniere. Si dans cette url les parametres choisis sont tels que le menu de recherche doit afficher des listes deroulantes de lieu, alors le menu affichera des listes déroulantes liées: le choix d'un pays entrainera le choix d'une region, qui entrainera le choix d'un département.... Ainsi un utilisateur Y de cette entreprise X pourra faire ses choix dans ce menu de recherche.

J'ai un problème au niveau de la fonction onchange de ces listes déroulantes. En local qd je suis sur mon site , pour les tests, ca marche super bien mais des que je suis chez le client Y qui a fait appel a mon script le onchange ne permet plus de faire la suite du traitement du choix des lieux, et je ne sais plus comment faire. pour rester toujours ds mon script pour continuer les traitements.. Je pense que ce la vient du windows.location.url


voila mon code :

l'url saisie de la page du client:
Je travaille sous zend framework, pr expliquer au plus simple ici ma variable country prend la valeur tout et ca selectionne tous les lieux par défaut que j'ai mis dans des tableaux (tabPays pour les pays, tabRegion pour les regions, ...). Je ne vous montre pas la partie de traitement pour stocker les valeurs dans ces tableaux.

voila mon code du formulaire et de la selection des lieux

Code : Tout sélectionner

<form method="post" action="http://localhost/recuperation-objets-immobiliers/traitement/resultat" id="formulaire_recherche" name="formu"> <!-- Sélection du lieu principal de recherche --> <label>Pays : </label> <select name="pays_select" onchange="document.forms['formu'].action=window.location.url; document.forms['formu'].submit();"> <option value=''>Sélectionner un pays</option> <?php foreach ($this->tabPays as $clef): if (!isset ($this->pays_selectionne)) {?> <option value="<?php echo $clef['ext']; ?>"><?php echo $clef['country']; ?></option>';<?php } else { if($this->pays_selectionne == $clef['ext']) {?> <option value="<?php echo $clef['ext']; ?>" selected="selected"><?php echo $clef['country'];?></option> <?php } else {?> <option value="<?php echo $clef['ext']; ?>"><?php echo $clef['country']; ?></option>';<?php } } endforeach; ?> </select><br><br> <!-- Sélection du lieu secondaire de recherche --> <?php if ((isset ($this->pays_selectionne)) && (Count($this->tabRegion)!=0)) {?> <label><?php echo $this->sous_lieu; ?> : </label> <select name="region_select" onchange="document.forms['formu'].action=window.location.url; document.forms['formu'].submit();"> <option value=''><?php echo $this->sous_lieuDefault; ?></option> <?php foreach ($this->tabRegion as $val) : if ($this->region_selectionnee == $val['ID']) {?> <option value="<?php echo $val['ID'];?>" selected="selected"><?php echo $val['Nom']; ?></option> <?php } else { ?> <option value="<?php echo $val['ID'];?>"><?php echo $val['Nom']; ?></option><?php } endforeach; ?> </select><br><br><?php }?> <!-- Sélection du lieu tertiaire --> <?php if($this->pays_selectionne=="fr") { if ((isset ($this->region_selectionnee)) && (Count($this->tabSousRegion)!=0)) {?> <label><?php echo $this->sous_sous_lieu; ?> : </label> <select name="sous_region_select" onchange="document.forms['formu'].action=window.location.url; document.forms['formu'].submit();"> <option value=''><?php echo $this->sous_sous_lieuDefault; ?></option> <?php foreach ($this->tabSousRegion as $val) : if ($this->sous_region_selectionnee == $val['ID_region']) {?> <option value="<?php echo $val['ID_region'];?>" selected="selected"><?php echo $val['Name']; ?></option> <?php } else { ?> <option value="<?php echo $val['ID_region'];?>"><?php echo $val['Name']; ?></option><?php } endforeach; ?> </select><br><br><?php } } else { if ((isset ($this->region_selectionnee)) && (Count($this->tabSousRegion)!=0)) {?> <label><?php echo $this->sous_sous_lieu; ?> : </label> <select name="sous_region_select" onchange="document.forms['formu'].action=window.location.url; document.forms['formu'].submit();"> <option value=''><?php echo $this->sous_sous_lieuDefault; ?></option> <?php foreach ($this->tabSousRegion as $val) : if ($this->sous_region_selectionnee == $val['ID_arrondissement']) {?> <option value="<?php echo $val['ID_arrondissement'];?>" selected="selected"><?php echo $val['Nom']; ?></option> <?php } else { ?> <option value="<?php echo $val['ID_arrondissement'];?>"><?php echo $val['Nom']; ?></option><?php } endforeach; ?> </select><br><br><?php } }?> <!-- Sélection du lieu quaternaire --> <?php if ((isset ($this->sous_region_selectionnee)) && (Count($this->tabSousSousRegion)!=0)) {?> <label><?php echo $this->sous_sous_souslieu; ?> : </label> <select name="sous_sousregion_select" onchange="document.forms['formu'].action=window.location.url; document.forms['formu'].submit();"> <option value=''><?php echo $this->sous_sous_souslieuDefault; ?></option> <?php foreach ($this->tabSousSousRegion as $valeur) : if ($this->sous_sousregion_selectionnee == $valeur['ID_arrondissement']) {?> <option value="<?php echo $valeur['ID_arrondissement'];?>" selected="selected"><?php echo $valeur['Nom']; ?></option> <?php } else { ?> <option value="<?php echo $valeur['ID_arrondissement'];?>"><?php echo $valeur['Nom']; ?></option><?php } endforeach; ?> </select><br><br><?php }?> <!-- Sélection du lieu final --> <?php if($this->pays_selectionne=="lu") { if((isset ($this->region_selectionnee)) && (Count($this->tabCommune)!=0)) {?> <label><?php echo $this->lieu_final; ?> : </label> <select name="commune_select"> <option value=''><?php echo $this->lieu_finalDefault ?></option> <?php foreach ($this->tabCommune as $va) : ?> <option value="<?php echo $va['ID_communes'];?>"><?php echo $va['Nom_communes']; ?></option><?php endforeach; ?> </select><br><br><?php } }else if($this->pays_selectionne=="fr"){ if ((isset ($this->sous_sousregion_selectionnee)) && (Count($this->tabCommune)!=0)) {?> <label><?php echo $this->lieu_final; ?> : </label> <select name="commune_select"> <option value=''><?php echo $this->lieu_finalDefault ?></option> <?php foreach ($this->tabCommune as $va) : ?> <option value="<?php echo $va['ID_communes'];?>"><?php echo $va['Nom_communes']; ?></option><?php endforeach; ?> </select><br><br><?php } }else { if ((isset ($this->sous_region_selectionnee)) && (Count($this->tabCommune)!=0)) {?> <label><?php echo $this->lieu_final; ?> : </label> <select name="commune_select"> <option value=''><?php echo $this->lieu_finalDefault ?></option> <?php foreach ($this->tabCommune as $va) : ?> <option value="<?php echo $va['ID_communes'];?>"><?php echo $va['Nom_communes']; ?></option> <?php endforeach; ?> </select><br><br><?php } } ?> <input type="submit" value="Rechercher" /> </form>

Jespere que quelqu'un pourra m'aider sur ce probleme, merci par avance.