1
所以基本上我有一個表單提交一個新的文章到數據庫。結合表單帖子和多個下拉JS重新加載
提交時,頁面驗證條目並顯示錯誤,並使用$_POST
重新填充字段以允許用戶修復錯誤。這工作正常。下面是代碼:
<form name="form1" method="post" action="newArticle.php?action=add">
<p> Title:<br />
<input name="title" type="text" id="title" size="30"
value="<?=$HTTP_POST_VARS['title']?>">
</p>
<p> Tagline:<br />
<input name="tagline" type="text" id="tagline" size="30"
value="<?=$HTTP_POST_VARS['tagline']?>">
</p>
現在我已經加入3下拉菜單選擇部分,分別由JS重載從數據庫填充從前面的列表中進行選擇後。這些也很好。 像這樣:
<? ////////// Starting of first drop downlist /////////
echo "<select name='country' onchange=\"reload(this.form)\"><option value=''>Select one</option>";
while($noticia2 = mysql_fetch_array($quer2)) {
if($noticia2['id'][email protected]$country){
echo "<option selected value='$noticia2[id]'>$noticia2[name]</option>"."<BR>";}
else{
echo "<option value='$noticia2[id]'>$noticia2[name]</option>";}
}
echo "</select>";
////////////////// This will end the first drop down list ///////////
////////// Starting of second drop downlist /////////
echo "<select name='region' onchange=\"reload3(this.form)\"><option value=''>Select one</option>";
while($noticia = mysql_fetch_array($quer)) {
if($noticia['id'][email protected]$region){
echo "<option selected value='$noticia[id]'>$noticia[name]</option>"."<BR>";}
else{
echo "<option value='$noticia[id]'>$noticia[name]</option>";}
}
echo "</select>";
////////////////// This will end the second drop down list ///////////
////////// Starting of third drop downlist /////////
echo "<select name='resort' ><option value=''>Select one</option>";
while($noticia = mysql_fetch_array($quer3)) {
echo "<option value='$noticia[id]'>$noticia[name]</option>";
}
echo "</select>";
////////////////// This will end the third drop down list ///////////?>
的JavaScript是:
<script language=JavaScript>
function reload(form)
{
var val=form.country.options[form.country.options.selectedIndex].value;
self.location='newArticle.php?country=' + val ;
}
function reload3(form)
{
var val=form.country.options[form.country.options.selectedIndex].value;
var val2=form.region.options[form.region.options.selectedIndex].value;
self.location='newArticle.php?country=' + val + '®ion=' + val2 ;
}
</script>
我的問題是,表單域使用下拉式菜單中,基本上意味着用戶必須再次啓動重裝後空。
有沒有一種明智的方式來完成這項工作,或者一種替代方式來填充post/reload上的字段?這似乎是一種複雜的做事方式。
我更喜歡使用PHP來更新下拉菜單,但在遇到其他人被選中後更改第一個下拉菜單時遇到了問題。
你正在改變self.location,它會重新加載整個頁面。相反,如果使用ajax和更智能的處理,只要在之前的某個選項中選擇了某個選項,就會加載後面的下拉列表的值,那麼該如何處理呢? – zanlok 2011-02-02 16:15:39