我正在尝试从Wordpress中的自定义表填充组合框。 print_r(array_values($cellco_options))
返回预期的15个项目数组。
我的foreach
声明是个问题。如果我回显变量,组合框将不会填充项目。如果我删除回声,则combox会填充15个项目,但它们是空白的。
问题: 为什么回声不允许盒子填满? 如何在我的盒子里装满我能看到的物品,在这种情况下回答错误的方法?
<?php
global $wpdb;
$cellco_options=$wpdb->get_results("SELECT `id`, `cellco` FROM `ea_cellcarrier` WHERE 1");
?>
<p>
<label for="cell_carrier<?php $template->the_instance(); ?>"><?php _e( 'Cell Carrier', 'theme-my-login' ) ?></label>
<select type="text" name="cell_carrier" id="cell_carrier<?php $template->the_instance(); ?>" tabindex="20" />
<option disabled selected value=""> -- select -- </option>
<?php
foreach ($cellco_options as $id => $cellco) { ?>
<option value= "<?php echo $id; ?>"><?php echo $cellco; ?></option>
<?php }
?>
</select>
</p>
答案 0 :(得分:0)
id
未对database results编制索引,因此您的foreach循环未达到预期效果。
另请注意我在foreach()
循环中使用的alternative syntax。在您将PHP与HTML混合的情况下,可以更容易地阅读。
<?php
global $wpdb;
$cellco_options=$wpdb->get_results("SELECT `id`, `cellco` FROM `ea_cellcarrier`", ARRAY_N);
?>
<p>
<label for="cell_carrier<?php echo $template->the_instance(); ?>"><?php _e( 'Cell Carrier', 'theme-my-login' ) ?></label>
<select type="text" name="cell_carrier" id="cell_carrier<?php $template->the_instance(); ?>" tabindex="20">
<option disabled="disabled" selected="selected" value=""> -- select -- </option>
<?php foreach ($cellco_options as $option):?>
<option value= "<?php echo $option[0]?>"><?php echo $option[1]?></option>
<?php endforeach;?>
</select>
</p>
答案 1 :(得分:0)
您的select html标记在该行的末尾关闭。
您可以使用php alternative syntax代码。
<?php
global $wpdb;
$cellco_options=$wpdb->get_results("SELECT `id`, `cellco` FROM `ea_cellcarrier` WHERE 1");
?>
<p>
<label for="cell_carrier<?php echo $template->the_instance(); ?>"><?php _e( 'Cell Carrier', 'theme-my-login' ) ?></label>
<select type="text" name="cell_carrier" id="cell_carrier<?php echo $template->the_instance(); ?>" tabindex="20">
<option disabled selected value=""> -- select -- </option>
<?php foreach ($cellco_options as $id => $cellco): ?>
<option value="<?php echo $id; ?>"><?php echo $cellco; ?></option>
<?php endforeach; ?>
</select>
</p>
答案 2 :(得分:0)
谢谢miken32,我尝试了你的提示但仍有空格,但是,你的提示导致以下解决方案有效:
global $wpdb;
$cellco_options=$wpdb->get_results("SELECT `id`, `cellco` FROM `ea_cellcarrier` WHERE 1");
?>
<p>
<label for="cell_carrier<?php echo $template->the_instance(); ?>"><?php _e( 'Cell Carrier', 'theme-my-login' ) ?></label>
<select type="text" name="cell_carrier" id="cell_carrier<?php echo $template->the_instance(); ?>" tabindex="20">
<option selected value="" > -- select -- </option>
<?php foreach ($cellco_options as $option):?>
<option value="<?php echo $option->id; ?>" >
<?php echo $option->cellco; ?></option>
<?php endforeach; ?>
</select>
</p>