2015-05-20 61 views
0

我想創建一個填充數字的下拉列表。這些數字需要從數據庫中檢索。到數據庫,並假定顯示用代碼的連接如下:檢索數據庫中的下拉選項

的函數來檢索的選項下拉

<?php 
    function dropdown_menu() { 

    global $wpdb; 
    /* Query the database */ 
    $query = $wpdb->prepare('SELECT * FROM LID ORDER BY LidID', 'LID', 'LidID'); 
    $results = $wpdb->get_results($query); 

    /* Check for $results */ 
    if(!empty($results)) : 

    /* Loop through the $results and add each as a dropdown option */ 
    global $options; 
    $options = ''; 
    foreach($results as $result) : 

    echo ("<option value=\"<?php echo $item->LidID ?>\"> <?php echo $item->LidID ?> </option>"); 

    endforeach; 
    endif; 
    } 
    ?> 

,其包括上述的函數轉換成一種形式的語句:

<tr class="form-field form-required"> 
       <th scope="row"><label for="LidID">Lid ID <span class="description">(verplicht)</span></label></th> 
       <td><select name="LidID" id="LidID" value="<?php echo $item->LidID ?>" aria-required="true"> <?php dropdown_menu(); ?> </select></td> 
      </tr> 

我遇到的問題是,它創建了一個下拉列表,其中包含相應數量的數據庫中的「LidID」記錄,但它們都顯示爲空白。我一直在玩弄它,我想我知道問題是什麼,但我不知道如何解決它。我認爲問題在於回聲陳述中;

echo ("<option value=\"<?php echo $item->LidID ?>\"> <?php echo $item->LidID ?> </option>"); 

當我刪除第二個LidID?>並用例如5代替它時,它顯示一個五個列表。由於某種原因,它不承認我寫的陳述。我試圖將echo語句中的$ item-> LidID轉換爲$ result-> LidID,但這似乎沒有任何影響。有沒有人有絲毫的想法在這裏出了什麼問題?

哦,是的,我不知道它是否有相關性,但它是一個WordPress的插件。

回答

1

你說得對,就是這個問題。回聲時你已經在PHP中,所以你不需要打開更多的PHP標籤。其他問題是$item不存在。另一個問題是你沒有正確使用MySQLi,如果你有一個變量,你只使用準備,你不這樣做不使用它。在這種情況下,您也不要使用get_results。試試這個:調用函數時

function dropdown_menu($default) { 
    global $wpdb; 
    /* Query the database */ 
    $query = 'SELECT * FROM LID ORDER BY LidID, LID, LidID'; 
    $results = $wpdb->query($query); 
    while ($item = $results->fetch_assoc()): 
     echo '<option value="'.$item->LidID.'"'.($item->LidID == $default ? ' selected="selected"' : '').'>'.$item->LidID.'</option>'; 
    endwhile; 
} 

然後

<td> 
    <select name="LidID" id="LidID" aria-required="true"> <?php dropdown_menu($item->LidID); ?> </select> 
</td> 
+0

似乎並沒有做任何的伎倆,他們仍然顯示空 – Ciphra

+0

哈哈,我看你剛纔編輯您的文章,因爲我想再次回覆。我用$ result替換$ item,現在它可以工作。謝謝您的幫助! – Ciphra

+0

你是完整的功能被搞砸了。我已更新我的答案,以顯示它應該是什麼樣子。 – Styphon

相關問題