J'ai fait exactement la même chose, moi ca fonctionne avec les pays et les états. Pas besoin de tout générer et tout cacher... :
echo "<tr bgcolor=\"".next_color()."\"><td align=\"right\">".$language['country']."</td><td>"; $country_result = $db->sql_query("SELECT b.country_id,b.name FROM ".$sys_conf['db']['table_prefix']."country a, ".$sys_conf['db']['table_prefix']."country_lang b WHERE a.country_id=b.country_id AND b.lang_id='".$language_id."' ORDER BY b.name ASC"); $country_line = $db->sql_numrows($country_result); $country_data = $db->sql_fetchrowset($country_result); echo "<select name=\"dealadd_country\" size=1 style=\"width:150px\" onchange=\"change_value(this.form,this.value)\">\n<option value=0> ".$language['select_c']."</option>\n"; for($i=0;$i<$country_line;$i++){ echo "<option value=".$country_data[$i]['country_id'].""; if($dealadd_country==$country_data[$i]['country_id']) echo " selected"; echo "> ".$country_data[$i]['name']."</option>\n"; } echo "</select>"; echo "</td></tr>"; if(!empty($dealadd_country)){ $state_result = $db->sql_query("SELECT b.state_id,b.name FROM ".$sys_conf['db']['table_prefix']."state a, ".$sys_conf['db']['table_prefix']."state_lang b WHERE a.state_id=b.state_id AND a.country_id='".$dealadd_country."' AND b.lang_id='".$language_id."' ORDER BY b.name ASC"); $state_line = $db->sql_numrows($state_result); $state_data = $db->sql_fetchrowset($state_result); if($state_line>=1){ echo "<tr bgcolor=\"".next_color()."\"><td align=\"right\">".$language['state']."</td><td>"; echo "<select name=\"dealadd_state\" size=1 style=\"width:150px\">\n<option value=0> ".$language['select_s']."</option>\n"; for($i=0;$i<$state_line;$i++){ echo "<option value=".$state_data[$i]['state_id'].""; if($dealadd_state==$state_data[$i]['state_id']) echo " selected"; echo "> ".$state_data[$i]['name']."</option>\n"; } } }
|
Par contre, tu dois savoir que si tu ne mets pas un value à chacun de tes autres textbox, bah tu vas perdre les infos genre.
Ta fonction change_value
<script language="JavaScript"> function change_value(form,valeur){ if(valeur!=0) form.submit(); } </script>
|
La tu vas me dire, comment faire pour changer un vrai submit de formulaire... Bah tu fais un boutton (button) qui appelle une fonction et qui change un champs hidden à 1... Quand celui ci est à 1, alors c'est que tu as envoyé le formulaire avec le bouton :)