簡體   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