如何在页面上提交其他表单时保留搜索表单结果?

时间:2019-02-12 04:14:17

标签: php html mysql

我首先显示我存储在数据库中的业务列表。有按行业或州搜索的表格。在显示搜索结果列表时,我还提供了将企业移动到其他表的选项。提交表格以将公司移至其他表格后,该列表将刷新为默认结果列表,我们必须再次输入搜索词。

我尝试将$ _POST值分配给表单动作URL中的动态url,我尝试将$ _POST值分配给表单的value =“”参数。

<?php

if  (isset($_POST['update']) && ($_POST['update'] == 'true')){ 
    $sql = 'INSERT INTO table1 (columns,columns,columns)
               SELECT columns,columns,columns
               FROM table2 WHERE id = 1';

               if (mysqli_query($db, $sql)) {} 
} 

?>

<div>
<form action="./?action=list" method="POST">
<input type="hidden" name="search" value="true" />
<input placeholder=" INDUSTRY" type="text" size="15" name="kw" />
<select name="state" onchange='this.form.submit()'>
<option value=''>BY STATE</option>
<?php require('includes/stateselect.php'); ?>
</select>&nbsp;
<input type="submit" value="SEARCH">
</form>
</div>

    <table>
    <?php
    $sql = 'SELECT * FROM db.table ';

    if ((isset($_POST['kw'])) && (!empty($_POST['kw']))){
        $sql .=' WHERE `kw` LIKE \'%'.$_REQUEST['kw'].'%\'  OR  `biz` LIKE \'%'.$_POST['kw'].'%\' ';
        }

    if ((isset($_POST['state'])) && (!empty($_POST['state']))){  
        $sql .=' WHERE `state` = \''.$_POST['state'].'\' ';
        }

        if ($result = mysqli_query($db, $sql)){
            while ($row = mysqli_fetch_array($result)) {

            echo '<tr><form method="POST" action="./?action=list">
            <input type="hidden" name="id" value="'.$row['id'].'" />
            <input type="hidden" name="update" value="true" />

            <td>'.$row['kw'] .'</td><td>'. $row['state'].'</td>';

            echo '<td>
                 <select name="move">
                    <option>--Fresh--</option>
                    <option value="dnc">DNC</option>
                 </select>';

            echo '<input type="submit" value="submit">';
            echo '</td></form></tr>';   

            }
        }

?>

</table>

我们希望能够搜索律师,然后按照我们所说的从列表中处置他们,但保留搜索结果。

2 个答案:

答案 0 :(得分:0)

您可以尝试将kw重置为第二种形式中的隐藏输入,以保留搜索字词,例如:

<?php

if  (isset($_POST['update']) && ($_POST['update'] == 'true')){ 
    $sql = 'INSERT INTO table1 (columns,columns,columns)
            SELECT columns,columns,columns
            FROM table2 WHERE id = 1';

            if (mysqli_query($db, $sql)) {} 
} 

?>

<div>
    <form action="./?action=list" method="POST">
        <input type="hidden" name="search" value="true" />
        <input placeholder=" INDUSTRY" type="text" size="15" name="kw" />
        <select name="state" onchange='this.form.submit()'>
        <option value=''>BY STATE</option>
        <?php require('includes/stateselect.php'); ?>
        </select>&nbsp;
        <input type="submit" value="SEARCH">
    </form>
</div>

    <table>
    <?php
    $sql = 'SELECT * FROM db.table ';

    if ((isset($_POST['kw'])) && (!empty($_POST['kw']))){
        $sql .=' WHERE `kw` LIKE \'%'.$_REQUEST['kw'].'%\'  OR  `biz` LIKE \'%'.$_POST['kw'].'%\' ';
        }

    if ((isset($_POST['state'])) && (!empty($_POST['state']))){  
        $sql .=' WHERE `state` = \''.$_POST['state'].'\' ';
        }

        if ($result = mysqli_query($db, $sql)){
            while ($row = mysqli_fetch_array($result)) {

            echo '<tr><form method="POST" action="./?action=list">
            <input type="hidden" name="id" value="'.$row['id'].'" />
            <input type="hidden" name="update" value="true" />

            <td>'.$row['kw'] .'</td><td>'. $row['state'].'</td>';

            echo '<td>
                <select name="move">
                    <option>--Fresh--</option>
                    <option value="dnc">DNC</option>
                </select>';

            // added below blocks
            if ((isset($_POST['kw'])) && (!empty($_POST['kw']))){
                echo '<input type="hidden" name="kw" value="'.$_POST['kw'].'" />';
                echo '<input type="hidden" name="search" value="true" />';
            }
            echo '<input type="submit" value="submit">';
            echo '</td></form></tr>';   

            }
        }

?>

</table>

答案 1 :(得分:0)

您可以将搜索词存储在会话中,以便可以在表单中多次使用该词。像这样将搜索词存储在会话中,

if ((isset($_POST['kw'])) && (!empty($_POST['kw']))){\
    $_SESSION['search_term] = $_POST['kw'];
    $sql .=' WHERE `kw` LIKE \'%'.$_REQUEST['kw'].'%\'  OR  `biz` LIKE 
         \'%'.$_POST['kw'].'%\' ';
 }