繁体   English   中英

从多个下拉列表中填充表格

[英]Populate Table from more than one drop-down list

我正在尝试在用户从下拉列表中选择选项后填充表格,选择此选项后,应根据所选选项填充表格。 我不确定如何完成这项工作,也已经搜寻了托里亚托里亚斯等,但没有任何帮助。 因此,如果有人可以提供一些帮助,例如使用小的测试代码等,我将很高兴。

我使用的是PHP,下拉列表中的选项来自MySQL数据库,因此总而言之,一个人将从“用户”下拉列表中选择一个用户,然后再从另一个下拉列表中选择另一个选项,然后要在选择了1个,2个或全部3个之后将其用作日期过滤器,则会根据所选值生成一个表格。

到目前为止,我还没有完成任何代码,因为我不知道该怎么做,但是我想我需要将所有3个下拉列表放入一个表单中,提交后我应该生成该表,但是我怎么能有多个<select> ..... </select> <form>并同时提交它们。

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

UPDATE

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

我添加了echo'This 'This is submitted ' . $_POST['submit']; 'This is submitted ' . $_POST['submit']; 因为我想查看提交的内容,但回显的只是“查找”。

有什么主意,我该如何从表格中获取双方提交的数据并基于该表格填充表格?

更新2
在从其他用户那里得到答案后,我看到我的表单可以正确处理数据,但是现在我的问题是如何使用提交的DDL表单中的数据并用它们填充表? 到目前为止,我已经尝试了以下方法:

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

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

编辑我认为经过一些研究后我发现我的错误是我现在无法测试代码,但是我几乎肯定您不能在数据库查询中使用$_POST['userSelect'] ,所以我只需要分配$_POST['userSelect']为某个变量,然后在查询中使用它。 到目前为止,我已经获得了有用的1个有用的技巧……对stackoverflow感到非常失望。

这是一个基础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']);

                }

            }
        }
    }

?>

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

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

通过将<select>name属性与$_POST一起使用,您将获得表单的其他值:

echo $_POST['userSelect'];
echo $_POST['Status'];

顺便说一句,您正在使用不建议使用的扩展名( 例如在此处编写 ),建议使用MySQLiPDO (特别是建议使用PDO)。 如果您使用的是PHP 7,则mysql_connect将不起作用,因为已将其删除。
而且我不确定htmlspecialchars()的使用与您使用的每个数据库数据是否相关。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM