[英]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'];
顺便说一句,您正在使用不建议使用的扩展名( 例如 , 在此处编写 ),建议使用MySQLi或PDO (特别是建议使用PDO)。 如果您使用的是PHP 7,则mysql_connect将不起作用,因为已将其删除。
而且我不确定htmlspecialchars()
的使用与您使用的每个数据库数据是否相关。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.