2012-06-15 47 views
-1

你好再次代碼大師,動態下拉菜單不顯示剩餘的html代碼,什麼錯誤?

我被困在這段代碼的下拉菜單。這裏的代碼

echo '<h3>Select Supplier</h3>';  
$deliver_sql = mysql_query("SELECT supplier_name FROM delivery") or die(mysql_error()); 

echo '<div align="left">'; 
echo '<form class="forms" action="returns.php" method="post" name="companyform">'; 

echo "<select class=\"input\" name=\"companyNames\" onChange=\"this.form.submit()\">"; 

     while($row = mysql_fetch_array($deliver_sql) or die(mysql_error())) 
     { 
     echo '<option value="'.$row['supplier_name'].'">'.$row['supplier_name'].'</option>'; 
     } 
    break; 
    echo '</select>'; 

echo '</form>'; 
echo '</div>'; 

我的問題是,這個代碼有什麼問題嗎?因爲當我打開此特定頁面時,頁腳不顯示。

它就像是有什麼是打破整個HTML代碼,導致頁腳不顯示,即使我用$_POST['companyform']也無法檢測到。

有人可以找到導致此錯誤的原因。

+0

我也雙重檢查所有的結束標記,它是全部結束正常。 –

回答

1

的問題是在這條線

while($row = mysql_fetch_array($deliver_sql) or die(mysql_error())) 

當沒有更多的行刪除or die(mysql_error()) $ deliver_sql,mysql_fetch_array將返回假和死(mysql_error())將被執行。 mysql_fetch_array返回false是不是一個錯誤,所以你不應該叫在這種情況下死
只需使用

while($row = mysql_fetch_array($deliver_sql)) 
+0

哦,coool謝謝!!!!它的工作,你結束了我的3小時調試.. –

1

嘗試echo '<div style="float:left">';代替echo '<div align="left">';

或刪除break;

while($row = mysql_fetch_array($deliver_sql))

+0

謝謝,現在我吸取了教訓! :) –