recuperation resultat de listes deroulantes liées

Invité
Invité n'ayant pas de compte PHPfrance

04 sept. 2007, 11:47

Ca y est tout marche voici le code final.

Code : Tout sélectionner

<fieldset> <legend>Please define an expression profile to match</legend> <form name="formulaire" action='omg_save_filter.php?idparameters=<?php echo $idparameters;?>&idproject=<?php echo $idproject;?>&user_defined_number_of_filters=<?php echo $user_defined_number_of_filters;?>' method="POST" > <?php for($i=0;$i<$user_defined_number_of_filters;$i++) { $option1="option1_".$i; $option2="option2_".$i;?> <?php echo $i.": ".$option2;?> <label for="<?php echo $option1;?>"></label> <select onchange='afficheoption2(<?php echo $idparameters;?>,<?php echo $idproject;?>,<?php echo $option1;?>,<?php echo $option2;?>,<?php echo $user_defined_number_of_filters;?>)' name='<?php echo $option1;?>' id='<?php echo $option1;?>' > <OPTION VALUE=-1 selected>Choose a filter</OPTION>; <OPTION value="cluster">Cluster</OPTION> <OPTION value="BHR">BHR</OPTION> <OPTION value="feature">Feature</OPTION> <OPTION value="specie">Specie</OPTION> <OPTION value="gene">Protein</OPTION> </select> <label for="<?php echo $option2;?>"></label> <span name='<?php echo $option2;?>' id="<?php echo $option2;?>" > <!-- Seconde liste deroulante--> </span> <br><input type="hidden" name=<?php echo "filternumber".$i;?> value="<?php echo $option2;?>"></input> <?php }?> <div class="buttons"> <input type="hidden" name="idparameters" value="<?php echo $idparameters;?>"></input> <input type="hidden" name="idproject" value="<?php echo $idproject;?>"></input> <input type="hidden" name="history" value="<?php echo $historic;?>"></input> <input type="hidden" name="user_defined_number_of_filters" value="<?php echo $user_defined_number_of_filters;?>"></input> <br><br> <input type="submit" name="submit" value="Add a Filter" id="input_add" ></input> <input type="submit" name="submit" value="Delete the last filter" id="input_del" ></input> <br><br> <input type="submit" name="submit" value="Submit" class="btn_submit" ></input> </div> </form> </fieldset>

Voici le javascript :

Code : Tout sélectionner

function getXmlHttpRequest() { if(window.XMLHttpRequest) { xhr = new XMLHttpRequest(); }else if(window.ActiveXObject) { try{ xhr = new ActiveXObject("Msxml2.XMLHTTP"); }catch(e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } }else{ alert("Votre navigateur ne supporte pas l'object XMLHTTPRequest!"); xhr = false; } } function afficheoption2(idparameters,idproject,a,b,nbpara) { getXmlHttpRequest(); xhr.onreadystatechange = function() { if(xhr.readyState == 4 && xhr.status == 200) { menu = xhr.responseText; document.getElementById(b.id).innerHTML = menu; } } xhr.open("POST","omg_select_queries.php?idparameters="+eval(idparameters)+"&idproject="+eval(idproject),true); xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); selection = document.getElementById(a.id); idoption1 = selection.options[selection.selectedIndex].value; xhr.send("idoption1="+idoption1+"&option="+b.id+"&idparameters="+eval(idparameters)+"&idproject="+eval(idproject)+"&nbpara="+eval(nbpara)); }

omg_select_queries.php:

Code : Tout sélectionner

[php] $idparameters=$_POST['idparameters']; $idproject=$_POST['idproject']; $user_defined_number_of_filte=$_POST["nbpara"]; $option_2=$_POST["option"]; if(isset($_POST["idoption1"]) and $_POST["idoption1"]=="specie") { echo "<select name='$option_2' id='$option_2'>"; $query="SELECT * FROM $database.specie,$database.specie_has_project WHERE $database.specie_has_project.project_idproject=$idproject AND $database.specie_has_project.specie_idspecie=$database.specie.idspecie"; $queryresult = pg_query($query); echo "<OPTION VALUE=-1 $selected>Choose a specie </OPTION>\n"; while($row = pg_fetch_row($queryresult)) { echo "<option value='".$_POST["idoption1"]."/".$row[2]." ".$row[1]." ".$row[3]." ".$row[4]."'>". $row[2]." ".$row[1]." ".$row[3]." ".$row[4]."</option>"; } echo "</select>"; } [/php]
et enfin pour recuperer les variables omg_save_filter.php:

Code : Tout sélectionner

[php] $idparameters=$_GET['idparameters']; $idproject=$_GET['idproject']; $user_defined_number_of_filters=$_GET["user_defined_number_of_filters"]; for($i=0;$i<$user_defined_number_of_filters;$i++) { echo "<br>$i ".$_POST["option2_".$i]; }[/php]
Voila