我正在尝试在用户从下拉列表中选择选项后填充表格,当选择此选项时,应根据所选选项填充表格。我不知道如何完成这项工作,我已经搜索了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感到失望.......
答案 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),建议使用MySQLi或PDO(特别推荐使用PDO)。如果您使用的是PHP 7,则mysql_connect将无法正常工作,因为它已被删除
我不确定使用echo $_POST['userSelect'];
echo $_POST['Status'];
是否与您使用的每个数据库数据相关。