获得选择选项php的价值

时间:2016-03-14 21:43:21

标签: javascript php html database post

我想在同一页面上获得select option php的值。我从数据库中提取了选择列表并在选择中列出了它们。但即使我在列表中选择了某些内容,也不会发布。下面的代码有问题吗?提前谢谢。

<div class="ibox-content m-b-sm border-bottom">
        <div class="row">
            <div class="col-sm-4">
                <div class="form-group">
                    <label class="control-label" for="status">Search by category</label>
                    <form action="" method="POST" >
                    <select name="category" class="form-control">
                        <option value="" selected>All</option>
                <?php
                    while($category = mysqli_fetch_array($result1)) {
                        // output data from each row
                        echo "<option value=\"{$category['categoryID']}\">{$category['name']}</option>";
                    }
                ?>
                    </select>
                        <input class="btn btn-primary" type="submit" name="submit" value="Search">
                        </input>
                    </form>
                </div>
            </div>
        </div>
    </div>
    <?php
    if (isset($_POST['submit'])) {
        echo "Got it!";
        echo $_POST['category'];
    }?>

2 个答案:

答案 0 :(得分:0)

您应该为选项指定名称:

<option name='category' value=\"{$category['categoryID']}\"...

然后尝试添加action='#',然后就可以了:

array (size=2)
  'category' => string '1' (length=1)
  'submit' => string 'Search' (length=6)

Got it!1

请注意,在您的代码中,“all”的选项没有任何值,并且不会显示。

答案 1 :(得分:-1)

你有:

<?php
 while($category = mysqli_fetch_array($result1)) {
     // output data from each row
     echo "<option value=\"{$category['categoryID']}\">{$category['name']}</option>";
 }
?>

数组键 - &gt;在模板内部var - &gt;在选项内 - &gt;在一个双引号字符串(将解析变量), - &gt;在while循环中(可能正在运行也可能没有运行)。嵌套复杂性的这种程度肯定会减少你的调试时间和简化调试。

我首先完全忽略html并且:

$category = mysqli_fetch_array($result1)
var_dump($category, $category['categoryID'], $category['name']);

在裸体php中,确保在将任何内容放入html之前确切地拥有了所需内容。

此外,表单操作=&#39;&#39;有时候会导致问题,所以在调试时将它和其他所有内容都明确并修复。

我不得不说你不使用模板引擎让自己变得更难,特别是在早期阶段。你的html + php是低可读性的,这降低了调试的难易程度。使用干净的模板,它可以更容易地调试回声问题,并且作为附带好处,您可以轻松逃脱。