【问题标题】:PHP search MySQL table with dropdown boxPHP 用下拉框搜索 MySQL 表
【发布时间】:2015-05-03 22:44:18
【问题描述】:

我正在尝试创建一个搜索框来搜索数据库的县字段。如果条件匹配,则记录将显示在表中。我在下拉框中找到了不同的县,但是当我单击记录时,表格没有改变。任何帮助将不胜感激!

<?php
require_once("includes/session.php");
include_once("includes/masterinclude.php");

$preferences = getPreferences();
$category = "";
$attribute1 = ""; $attribute2 = ""; $attriute3 = ""; $attribute4 = "";
$top_level="0";

$name = $_GET['members'];
$information = getInformationPage($name);
$infopagename=$information->IN_NAME;
//meta data for information pages now taken from the information table
$pageTitle = $information->IN_NAME . html_entity_decode($information->IN_TITLE);
$pageMetaDescription = html_entity_decode($information->IN_META_DESC);
$pageMetaKeywords = html_entity_decode($information->IN_META_KEYWORDS);
$pageCustomHead = html_entity_decode($information->IN_CUSTOM_HEAD, ENT_QUOTES);

//initialise screen fields
$selected_member = "";
$id = "";
$username = ""; $username_original = "";
$password = ""; $password_original = "";
$password_test = "";
$title = "MR"; $first_name = ""; $last_name = ""; $company_name = "";
$address1 = ""; $address2 = ""; $town = ""; $county = ""; $country = ""; $postcode = ""; $phone = ""; $mobile = ""; $email = "";
$member_confirmed = "N";
$ast_first = 0; $ast_last = 0; $ast_company = 0; $ast_add1 = 0; $ast_add2 = 0; $ast_town = 0; $ast_county = 0; $ast_country = 0; $ast_post = 0; $ast_phone = 0;
$ast_mobile = 0; $ast_email = 0;
$ast_user = 0; $ast_pass = 0; $ast_passconf = 0;

$members = Get_All_Members("ALL");
$_GET['searchdata'] = $_POST['SEARCH_DATA']; $_GET['searchmember'] = $_POST['MEMBER'];

include_once("includes/header.php");
?>

<!-- start: Page header / Breadcrumbs -->

<div id="breadcrumbs">
    <div class="container">
        <div class="breadcrumbs"> 
        <a href="/">Home</a><i class="icon-angle-right"></i>Stockists
        </div>
    </div>
</div>

<!-- end: Page header / Breadcrumbs -->


<!-- start: Container -->
<div id="container">
    <div class="container">
        <div class="row-fluid">

        <form class="form-horizontal form-box" role="form" name="enter_thumb" action="/stockists.php" enctype="multipart/form-data" method="post" onsubmit="return validate_discount_table();"> 

        <!-- start: Page section -->
        <section class="span12">
            <div class="row-fluid shop-result">
                <div class="inner darken clearfix">
                <h1>Stockists</h1>
                </div>
            </div>



            <div class="row-fluid">

            <div class="form-group">
                    <label class="col-lg-4">Search County: </label>
                <div class="col-lg-4">
                    <Input class="form-control" name="SEARCH_DATA" type="text" size="72" value="<?php echo isset($_POST['SEARCH_DATA']) ? $_POST['SEARCH_DATA'] : "" ?>"/>
                </div>

                <div class="col-lg-4">
                    <Input name="SEARCH" type="submit" value="search" class="btn btn-primary"/>
                </div>

                <div class="col-lg-4">
                    <select name="search_results" id="jumpMenu" onchange="MM_jumpMenu('parent',this,1)">
                        <option value="#">Choose from...</option>
                            <?php
                            if (isset($_POST['SEARCH_DATA'])){
                            $members = Search_member($_POST['SEARCH_DATA']);
                            foreach($members as $m){
                            if(isset($_POST['SELECTED_MEMBER']) and $_POST['SELECTED_MEMBER'] == $m->MB_COUNTY){
                            $selected = "selected";
                            }else{
                            $selected = "";
                            }
                            echo "<option value=\"/stockists.php?searchdata=" . $_POST['SEARCH_DATA'] . "&searchmember=" . $m->MB_COUNTY . "\"" . $selected . ">" . $m->MB_COUNTY . " - " . html_entity_decode($m->MB_COUNTY) . "</option>";
                                }
                            }
                            ?>
                    </select>

                    <input type="hidden" name="SELECTED_MEMBER" value="<?php echo (isset($selected_member) ? $selected_member : "") ?>"/>
                </div>
            </div>



            <div class="form-group">
            <table class="table table-bordered table-striped table-hover">

            <thead>
            <tr>
                <th>
                   Name
                </th>
                <th>
                  Website
                </th>
                <th>
                   Phone
                </th>
                <th>
                    Address
                </th>
            </tr>
            </thead>


            <?php if($county != ""): ?> 
            <?php
                foreach($members as $m){
                    echo "<tr>";
                        echo "<td>";
                            echo "<span class=\"member_line\">" . $m->MB_COMPANY . "</span>";
                        echo "</td>";
                        echo "<td>";
                            echo "<a href=\"http://" . $m->MB_MOBILE . "\">" . $m->MB_MOBILE . "</a>";
                        echo "</td>";
                        echo "<td>";
                            echo "<span class=\"member_line\">" . $m->MB_PHONE . "</span>";
                        echo "</td>";
        //              echo "<td>";
        //                  echo "<a href=\"mailto:" . $m->MB_EMAIL . "\"><span style=\"color:#669999;\" class=\"member_line\">" . $m->MB_EMAIL . "</span></a>";
        //              echo "</td>";-->
                        echo "<td>";
                            echo "<span class=\"member_line\">" . $m->MB_ADDRESS1 . ", " . $m->MB_ADDRESS2 . ", " . $m->MB_TOWN . ", " . $m->MB_COUNTY . ", " . $m->MB_POSTCODE . "</span>";
                        echo "</td>";
                    echo "</tr>";
                }
                echo "</table>"; 
             ?>
             </table>

             <?php endif; ?>

             </div>
            </div>
            </form>  
        </section>
        <!-- end: Page section -->


        </div>

    </div>
</div>
<!-- end: Container -->



<?php
  include_once("includes/footer.php");
?>

【问题讨论】:

  • 是否显示任何错误?您使用的是什么 SQL?您正在访问的数据库架构是什么?您是否得到了一些输出但输出错误?发布一段代码而不解释应该发生什么(也没有描述应该从你的函数返回什么信息)是没有帮助的。将所有函数的输出记录到文件中,以便缩小问题所在
  • 没有显示错误。那里没有任何输出,但它仍然是空白的。它们是数据库中的记录,并且正在连接数据库。抱歉,我是新来在线发布问题的人,以后会更加努力。
  • 如果正在连接数据库,查询的输出是什么?在检索每一行时将它们转储到日志文件 (CSV/print_r/var_export),以便您可以检查数据是否实际合理。如果您使用的是 JavaScript,请检查错误并将输出记录到控制台

标签: php mysql html-table


【解决方案1】:

如果不刷新页面或使用 javascript 重写页面,您的 PHP 页面将无法更改其中的内容。

我看到您在下拉更改时使用了 MM_jumpMenu() JS 函数。此函数将需要检索数据以供您选择,然后重写表以包含新数据。如果您已经在 J​​S 代码中执行此操作,那么我们需要查看该代码以找出问题所在。

另一种方法是取消 JS 并允许表单将页面提交给它自己。然后在页面顶部读取已从表单传递的选定值,加载数据并相应地写入包。

【讨论】:

  • 是的,我一直在尝试刷新,当我启动表单时,我有 action="/stockists.php"。当我单击搜索按钮时,页面会重新加载,并且县会出现在下拉框中。该表没有显示任何内容,它仍然是空的。数据库中有记录。由于某种原因,IF 语句不起作用,并且没有显示记录!
  • if 语句检查 $county 是否为空。我可以看到你在哪里默认它是空的,但我看不到你在里面放了任何东西,所以它总是空的。如果国家/地区的价值从表单提交中返回,您需要检查类似 $_POST['country']
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-18
相关资源
最近更新 更多