我想创建一个填充数字的下拉列表。这些数字需要从数据库中检索。到数据库,并假定显示用代码的连接如下:检索数据库中的下拉选项
的函数来检索的选项下拉
<?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的插件。
似乎并没有做任何的伎俩,他们仍然显示空 – Ciphra
哈哈,我看你刚才编辑您的文章,因为我想再次回复。我用$ result替换$ item,现在它可以工作。谢谢您的帮助! – Ciphra
你是完整的功能被搞砸了。我已更新我的答案,以显示它应该是什么样子。 – Styphon