将mysql php变量设置为相等的下拉值

时间:2015-12-22 04:26:43

标签: php jquery mysql ajax

如何使下面的mysql查询中的变量$ Category等于下面下拉列表中选择的值?

这似乎是一个似乎无法弄清楚的简单概念。如果页面在下拉列表选项更改时自动运行新查询,那也会很棒。此外,它应默认显示页面首次加载时的所有记录。

MYSQL PHP QUERY

               $query = mysql_query("SELECT * FROM tblClients  WHERE tblclients.package =  'standard' and tblclients.category = '$Category' LIMIT 0, 9", $connection);

DROPDOWN LIST

    <section class="main">
        <div class="wrapper">
            <div id="dd" class="wrapper-dropdown-3" tabindex="1">
                <span>View By Category</span>
                <ul class="dropdown">
            <?php while ($rows = mysql_fetch_array($query_category)) { ?>
                    <li><a class="<?php echo $rows['category']; ?>"><?php echo $rows['category']; ?></a></li>
            <?php } ?>  
            </ul>
            </div>
        ​</div>
    </section>

1 个答案:

答案 0 :(得分:4)

如果您不想使用表单并从select中传递选项的值,而是希望用户单击列表中的链接,则可以将该值附加到URL并将其作为get传递参数。

变化:

<li><a class="<?php echo $rows['category']; ?>"><?php echo $rows['category']; ?></a></li>

要:

<li><a href="?category=<?php echo $rows['category']; ?>" class="<?php echo $rows['category']; ?>"><?php echo $rows['category']; ?></a></li>

然后,您可以将该变量作为$ _GET变量进行访问。像:

$selectedCategory = $_GET['category'];
$query = mysql_query("SELECT * FROM tblClients  WHERE tblclients.package =  'standard' and tblclients.category = " . $selectedCategory . " LIMIT 0, 9", $connection);

请务必清理用户输入数据。

回复你的评论:

如果要使用选择和选项,可以使用表单。表单的操作将是PHP脚本的URL,它将处理表单元素的选定值。表单的方法可以是GET(你可以像我之前概述的那样处理变量),也可以是POST,你可以使用$ _POST数组而不是$ _GET数组来访问变量。

<form name="form1" action="" method="GET">
    <select name="category">
     <option value="home">Home</option>
     <option value="work">Work</option>
     <option value="school">School</option>
    </select>
    <input type="submit" value="Submit"/>
</form>

或者,您可以使用javascript在select:

的更改时重定向到您的处理代码
<select name="category" onchange="location = window.location.href + "?category="+this.selectedIndex.value;">
 <option value="home">Home</option>
 <option value="work">Work</option>
 <option value="school">School</option>
</select>

按照我之前概述的方式处理$ _GET变量。