刷新后如何保留相同的选择?

时间:2013-10-09 00:39:28

标签: javascript php jquery mysqli

刷新时或提交或删除后,如何在下拉列表中保留相同的选项?

我在下面的代码中选择了数据库中的值。我想在刷新或提交表单或删除记录后,在选择下拉列表中返回相同的值。

bid.php

<html>
<head>
    <script>
        function showUser(str) {
            var $txtHint = $('#txtHint');
            if (str == "") {
                $txtHint.html('');
                return;
            }
            $txtHint.load('bid_list.php?q=' + str)
        }
        </script>

        </head>
        <body onload=showUser(str="ALL")>

        <?php
        $mysqli = new mysqli("localhost", "root", "", "app");
        $result = $mysqli->query("SELECT bid FROM procurement WHERE bid LIKE '13-___' OR bid LIKE '1_-___' OR bid LIKE '2_-___' GROUP BY bid ORDER BY bid");

        $option = '';
        while($row = $result->fetch_assoc())
        {
          $option .= '<option value = "'.$row['bid'].'">'.$row['bid'].'</option>';
        }
        ?>

        <select name="users" onchange="showUser(this.value)" style="overflow:scroll;width:100px;">
                <option value="ALL" selected='ALL'>ALL</option>
                <?php echo $option; ?>
        </select>

        <div id="txtHint">
        </div>
</body>
</html>

bid_list.php

<?php
$mysqli = new mysqli("localhost", "root", "", "app");
$q = $_GET["q"];
$where = '';
if ( $q != 'ALL' ) {
    $where = " WHERE bid='$q' ";
}
$result1 = $mysqli->query("
    SELECT bid, item_name, item_description, unit, unit_cost, quantity, supplier, po_number, po_date, counter, SUM(unit_cost*quantity) AS total_amount 
    FROM procurement 
    $where 
    GROUP BY counter ORDER BY bid
");
echo'<table id="tfhover" cellspacing="0" class="tablesorter" style="text-transform:uppercase;">
        <thead>
        <tr>

            <th colspan="3" id="none" style="cursor: default;"></th>
            <th title="Item Name">Item Name</th>
            <th title="Item Description">Description</th>
            <th title="Example : Pc, Pcs, Box and Etc.">Unit</th>
            <th title="Item Price">Unit Cost</th>
            <th title="Total Item Quantity">QTY</th>
            <th title="Total Price">Total Amount</th>
            <th title="Name of Supplier">Supplier</th>
            <th title="Purchase Order Date">PO Date</th>
            <th title="Purchase Order #">PO #</th>
            <th id="none" style="cursor: default;"></th>
        </tr>
        </thead>';
        echo'<tbody>';
while($row = $result1->fetch_assoc()){
if($row['bid'] != '')
 {
 echo'<tr>

            <td align="center"><a href="bid.php?de='.$row["counter"].'" onclick="return confirm(\'Really want to delete ?\');"><img src="images/del.png" border="0" width="10" height="10" title="Delete"></a></td>
            <td align="center"><a class="fancybox" href="edit.php?pn='.$row["counter"].'"><img src="images/edit.png" border="0" width="10" height="10" title="Edit"></a></td>
            <td align="center"><a class="fancybox" href="comments.php?pn='.$row["counter"].'"><img src="images/remarks.png" border="0" width="10" height="10" title="Remarks and Notes"></a></td>
            <td>'.$row['item_name'].'</td>
            <td>'.$row['item_description'].'</td>
            <td>'.$row['unit'].'</td>
            <td>'.number_format($row['unit_cost'], 2, '.', ',').'</td>
            <td>'.$row['quantity'].'</td>
            <td>'.number_format($row['total_amount'], 2, '.', ',').'</td>
            <td>'.$row['supplier'].'</td>
            <td>'.$row['po_date'].'</td>
            <td>'.$row['po_number'].'</td>
            <td><input name="checkbox[]" type="checkbox" id="checkbox[]" value="'.$row['counter'].'"></td>
       </tr>';
       }
        }
    echo "</tbody></table>";

2 个答案:

答案 0 :(得分:1)

使用jquery ajax调用,并在ajax调用成功返回时更新DOM。见http://api.jquery.com/jQuery.ajax/

答案 1 :(得分:1)

AJAX可用于与数据库进行交互式通信,请访问以下网站:http://www.w3schools.com/php/php_ajax_database.asp

我相信这就是你所需要的。