组合框不会显示MySQL的值

时间:2016-01-22 17:50:57

标签: php mysql wordpress

我正在尝试从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>

3 个答案:

答案 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>