从多个下拉列表中填充表

时间:2017-05-19 12:10:01

标签: php mysql html-table dropdown

我正在尝试在用户从下拉列表中选择选项后填充表格,当选择此选项时,应根据所选选项填充表格。我不知道如何完成这项工作,我已经搜索了tutorias等,但没有任何帮助。所以如果有人能以某种方式提供帮助,例如小测试代码等,我会很高兴。

我正在使用PHP,下拉列表的选项来自MySQL-Database,所以总结一个人会从用户下拉列表中选择一个用户,然后从另一个下拉列表中选择另一个选项然后在选择1,2或全部3之后,还会有一个日期过滤器,将根据所选值生成一个表格。

到目前为止,我还没有完成代码,因为我不知道怎么做,但我想我需要将所有3个下拉列表放在一个表单中,提交后我应该生成表,但是我怎么能有更多<{1}}中的一个<select> ..... </select>并同时提交所有内容。

到目前为止我做了什么(我知道它不安全,并且PHP7中不再存在mysql_ *)但是请不要批评它。

更新

<form>

我添加了echo //Database query for User drop-down(DD) population. $sqlDD = " SELECT DISTINCT `user` FROM `users` " ; $resultDD = mysql_query($sqlDD); //Database query for Status drop-down(DD) population. $sqlDDStatus = " SELECT `status` FROM `status` WHERE `id` = 1 OR `id` = 123 OR `id` = 182 OR `id` = 12 "; $resultDDStatus = mysql_query($sqlDDStatus); <form id="form1" name="form1" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post"> <select name="userSelect"> <?php while($rowDD = mysql_fetch_array($resultDD)): echo "<option value='" . htmlspecialchars($rowDD['user']) ."'>" . htmlspecialchars($rowDD['user']) ."</option>"; ?> <?php endwhile; ?> </select> <!-- Second DD-list in the same form --> <select name="Status" style="max-width: 250px;" > <?php while($rowDDS = mysql_fetch_array($resultDDStatus)): echo "<option value='" . htmlspecialchars($rowDDS['status']) ."'>" . htmlspecialchars($rowDDS['status']) ."</option>"; ?> <?php endwhile; ?> </select> <input type="submit" name="submit" value='Find'/> </form> //Get the submited data <?php if(isset($_POST['submit'])): ?> <?php echo 'This is submitted ' . $_POST['submit']; ?> <?php endif; ?> 因为我想看看提交的是什么,但它得到的回应只是 “查找”。

任何想法如何从表单中提取数据并根据它填充表格?

更新2
在得到其他用户的答案后,我看到我的表单正确处理数据,但我现在的问题是如何使用Submitted DDL Form中的数据并用它们填充表格?到目前为止,我已尝试过以下内容:

'This is submitted ' . $_POST['submit'];

然后在表格中

<?php if(isset($_POST['submit'])): ?>
        <?php $result = mysql_query( "SELECT * FROM `users` WHERE `user` = 
        $_POST['userSelect']  AND (`id` = 1 OR `id` = 18)" );
        ?>
    <?php endif; ?>

但是当我尝试它时,我只是没有得到任何回应。如何解决问题并获得所需的输出?

修改 我认为我在一些研究后发现我的错误现在无法测试代码,但我几乎肯定你不能在数据库查询中使用<table> <?php while ($row = mysql_fetch_assoc($result)) :; ?> <tr> <td><?php echo $row['user']; ?></td> <?php endwhile; ?> </table> 所以我只需要指定{{1在我在查询中使用它之前的某个变量。到目前为止,我已经获得了一些有用的小提示......对stackoverflow感到失望.......

2 个答案:

答案 0 :(得分:0)

这是一个基础HTML / PHP页面,用于从后端到前端获取数据,这应该可以帮助您入门。尝试打印数据(在HTML页面的while循环中)。

<html>
<head>
    <title></title>
</head>
<body>
    <form action="dropdown.php" method="POST">
        <select name='options'>
            <option>option 1</option>
            <option>option 2</option>>
            <option>option 3</option>>
        </select>
        <input type="submit" value="Submit">
    </form>

</body>
</html>

<?php

    $mysqli = new mysqli("localhost", "user", "password", "database");

    if ($mysqli->connect_errno) {
        echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
    }else{
        if (!empty($_POST)){

            if(!empty($_POST['options'])){

                $option = $_POST['options'];

                $query = "SELECT * FROM table WHERE option='$option'";

                $res = $mysqli->query($query);

                while($data = $res->fetch_assoc()){

                    //print data to HTML page
                    print_f('%s, $s\n', $data['firstname'], $data['lastname']);

                }

            }
        }
    }

?>

答案 1 :(得分:0)

您的表单可能正常工作,您只能获得“查找”的原因是您正在打印提交按钮的value
要获得表单数据的概述,请尝试:

echo '<pre>';
print_r($_POST);
echo '</pre>';

您将使用name <select>的{​​{1}}属性获取表单的其他值:

$_POST

顺便说一句,您使用的是已弃用的扩展程序(written here for example),建议使用MySQLiPDO(特别推荐使用PDO)。如果您使用的是PHP 7,则mysql_connect将无法正常工作,因为它已被删除 我不确定使用echo $_POST['userSelect']; echo $_POST['Status']; 是否与您使用的每个数据库数据相关。

PHP.net - print_r()(另见var_dump()
PHP.net - $_POST