[英]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.