【问题标题】:Two dropdown menus, only one displayed两个下拉菜单,只显示一个
【发布时间】:2014-10-01 09:49:27
【问题描述】:

我有两个函数都基于 Mysqli 输入创建下拉菜单。

ifself 每个都可以正常工作,但是当我像这样从不同的页面调用它们时:

populerOevelserdropdown();
populerAntalreps();

只显示一个(第一个 - 第二个显示在查看源代码中)

但是,如果我这样调用:

populerOevelserdropdown();
populerOevelserdropdown();
populerAntalreps();

每个都正确显示(当我查看源代码时,第三个仍然显示)

我确定这与标签(html、表单等)不匹配有关,但我似乎无法正确排列它们...

希望你们能提供帮助 - 以下是两个功能:

require_once 'forbindtilDB.php';

function populerOevelserdropdown()
{
    global $mysqliOOP;
    $stmt = $mysqliOOP->prepare("SELECT DISTINCT primaer FROM oevelser ORDER BY primaer ASC");

   ?>
   <html>
<body>
<form>
    <select multiple> 
    <option value="0">Vælg ønskede øvelse(r)</option>
        <?php
            $stmt->execute();
            $stmt->bind_result($primaereMuskelgruppe);
            while ($stmt->fetch())
            {
        ?>
            <option value = "<?php echo $primaereMuskelgruppe;?>" >
                <?php echo $primaereMuskelgruppe;
                ?>
            </option>
            <?php
            }  
            $stmt->close(); 
}
function populerAntalreps()
{
    global $mysqliOOP;
    $stmt = $mysqliOOP->prepare("SELECT antalreps FROM antalreps ORDER BY antalreps ASC");

   ?>
   <html>
<body>
<form>
    <select> 
    <option value="0">Vælg ønskede antal gentagelser</option>
        <?php
            $stmt->execute();
            $stmt->bind_result($antalreps);
            while ($stmt->fetch())
            {
        ?>
            <option value = "<?php echo $antalreps;?>" >
                <?php echo $antalreps;
                ?>
            </option>
            <?php
            }  
            $stmt->close(); 
}

【问题讨论】:

  • 您不能打印 html, body 两次。只考虑一次的方法

标签: php html


【解决方案1】:

您没有正确关闭select 框。即使您使用未关闭的&lt;html&gt; &lt;body&gt; &lt;form&gt; 标签。像这样改变你的代码

<?php
    function populerOevelserdropdown()
    {
        global $mysqliOOP;
        $stmt = $mysqliOOP->prepare("SELECT DISTINCT primaer FROM oevelser ORDER BY primaer ASC");

       ?>

    <select multiple> 
    <option value="0">Vælg ønskede øvelse(r)</option>
        <?php
            $stmt->execute();
            $stmt->bind_result($primaereMuskelgruppe);
            while ($stmt->fetch())
            {
        ?>
            <option value = "<?php echo $primaereMuskelgruppe;?>" >
                <?php echo $primaereMuskelgruppe;
                ?>
            </option>
            <?php
            }  
            $stmt->close();
            ?>              
    </select>
<?php       
}

function populerAntalreps()
{
    global $mysqliOOP;
    $stmt = $mysqliOOP->prepare("SELECT antalreps FROM antalreps ORDER BY antalreps ASC");

   ?>
    <select> 
    <option value="0">Vælg ønskede antal gentagelser</option>
        <?php
            $stmt->execute();
            $stmt->bind_result($antalreps);
            while ($stmt->fetch())
            {
        ?>
            <option value = "<?php echo $antalreps;?>" >
                <?php echo $antalreps;
                ?>
            </option>
            <?php
            }  
            $stmt->close();
        ?>      
    </select>       
<?php } ?>

【讨论】:

  • 它工作得很好,感谢 Ram - 你设法摆脱了所有(目前讨厌的)html :)
【解决方案2】:

你应该从你的函数中提取 html 和 body 标记... 像这样:

function populerOevelserdropdown()
{
    global $mysqliOOP;
    $stmt = $mysqliOOP->prepare("SELECT DISTINCT primaer FROM oevelser ORDER BY primaer ASC");

   ?>

<form>
    <select multiple> 
    <option value="0">Vælg ønskede øvelse(r)</option>
        <?php
            $stmt->execute();
            $stmt->bind_result($primaereMuskelgruppe);
            while ($stmt->fetch())
            {
        ?>
            <option value = "<?php echo $primaereMuskelgruppe;?>" >
                <?php echo $primaereMuskelgruppe;
                ?>
            </option>
            <?php
            }  
            $stmt->close(); 
}
function populerAntalreps()
{
    global $mysqliOOP;
    $stmt = $mysqliOOP->prepare("SELECT antalreps FROM antalreps ORDER BY antalreps ASC");

   ?>
   <html>
<body>
<form>
    <select> 
    <option value="0">Vælg ønskede antal gentagelser</option>
        <?php
            $stmt->execute();
            $stmt->bind_result($antalreps);
            while ($stmt->fetch())
            {
        ?>
            <option value = "<?php echo $antalreps;?>" >
                <?php echo $antalreps;
                ?>
            </option>
            <?php
            }  
            $stmt->close(); 
}
?>
<html>
    <body>
<?
    populerOevelserdropdown();
    populerOevelserdropdown();
    populerAntalreps();
?>
    </body>
</html>     

【讨论】:

    【解决方案3】:

    我认为您错过了关闭选择框。就在$stmt-&gt;close();之后的&lt;/select&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      • 2017-06-09
      • 1970-01-01
      • 1970-01-01
      • 2021-09-09
      • 1970-01-01
      相关资源
      最近更新 更多