2013-04-18 39 views
0

感謝您的支持,我很抱歉,如果這個問題似乎很容易,因爲我有點新的PHP。我試圖做一個學校項目,現在我的問題是,我似乎無法得到下拉列表的值。我一直在嘗試搜索每個論壇和這裏的一些類似問題,但他們似乎只顯示如何填充數據庫值的下拉菜單。如何動態地從MySQL表中選擇標籤的值

用於填充下拉菜單的代碼正在工作,但錄製選定的值對我無效。

這裏是下拉我的PHP代碼:

<div class="panel"> 
    <label class="panelname">Category:</label> 
    <select name="category" class="signup_field"> 
     <option>Select One</option> 
     <? // retrieve all the categories and add to the pull down menu 
     $query = 'SELECT category_id, name FROM category ORDER BY name ASC'; 
     $request = mysqli_query($dbc, $query); 
     while ($row = mysqli_fetch_array($request, MYSQLI_NUM)) { 
      $cat_id = $row[0]; 
      echo "<option value=\"row[0]\""; 
      //check for stickyness: 
      if (isset($_POST['category']) && ($_POST['category'] == $row[0])) { 
       echo ' selected="selected"'; 
       //$_POST[] 
      } echo ">$row[1]</option>\n"; 
     } 
     ?> 
    </select> 
    <? if (array_key_exists('category', $add_product_errors)) echo '<label class="error">' . $add_product_errors['category'] . '</label>'; ?> 
</div> 

這裏是我的我的驗證代碼部分: -

// Check for a form submission: 
if ($_SERVER['REQUEST_METHOD'] == 'POST') { 

// Check for a category: 
if (!isset($_POST['category']) || !filter_var($_POST['category'], FILTER_VALIDATE_INT, array('min_range' => 1))) { 
    $add_product_errors['category'] = 'Please select a category!'; 
} 
..... // other codes for validation (Eg: if (empty($add_product_errors)) { proceed to query}) 

我不知道是什麼似乎是問題但是$ _POST ['category']中沒有記錄值來保存到MySQL中,並且我不斷收到請選擇一個類別錯誤。

謝謝大家的幫助。 :)

回答

0

謝謝,我似乎已經解決的問題..

我已經似乎已經刪除了($)行在第[0]行中可以正確讀取。 只是把$該行[0]:

echo "<option value=\"row[0]\""; 
1

你的問題似乎是echo "<option value=\"row[0]\"";。你想與

echo "<option value=\"$row[0]\""; 

echo "<option value=\"row[0]\"";來代替它只是把一個字符串row[0]

0

我用來解決這個問題好像...你的情況。

while ($row = mysqli_fetch_array($request, MYSQLI_NUM)) { 
     $cat_id = $row[0]; 
     $str = null; 
     if (isset($_POST['category']) && ($_POST['category'] == $row[0])) { 
       $str = 'selected="selected"'; 
     } 
     echo '<option value="'.$row[0].'" '.$str.'>'.$row[1].'</option>'; 
    }