2016-01-22 112 views
1

我想从Wordpress中的自定义表格中填充组合框。 print_r(array_values($cellco_options))返回15个项目的预期数组。 我的foreach声明是一个问题。如果我回显变量,组合框将不填充项目。如果我删除回显,则combox会填充15个项目,但它们是空白的。组合框将不会显示来自MySQL的值

问题: 回声为什么不让箱子填满? 如何在我的箱子中填充我可以看到的物品,在这种情况下回音是否是错误的方法?

<?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

谢谢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> 
+0

这正是我张贴相同的代码,但使用从'get_results()'而不是数组返回的对象。至少你可以对我赞不绝口。 – miken32

0

database results不受id索引,以便您的foreach循环没有得到你所期望的。

还请注意alternative syntax我与foreach()循环一起使用。在你将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> 
0

您选择的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>