使用下拉列表选择作为mySQL查询参数

时间:2012-09-12 18:08:14

标签: php javascript jquery mysql ajax

几天前我曾问过一个类似的问题,但我认为我曾经尝试过很多次。我希望有人可以帮助我开始这个。

我有两个下拉列表,一个将填充多年(2012年,2011年等),我有一些名为“db_2012”,“db_2011”等的mySQL数据库。在这些数据库中是表示月份的表。

我希望用户选择一年,然后使用该选项查询正确的数据库并返回将用于填充第二个下拉列表的表名列表。然后单击“查看结果”按钮查询所选表格并显示结果。

我将它放在wordpress网站上并使用我创建的php模板文件。这对我来说仍然是新的,到目前为止我没有像我想要的那样工作,现在基本上设置你选择一年并选择一个月(不是从db填充)并单击一个按钮。它使查询和我的表显示,但我需要这个解决方案更动态,并按上述方式工作。谢谢你的帮助。

echo '<form action="" method="post">';
echo'<select name="years" id="years">';
foreach($yearList as $year){
    echo'<option value="'.$year.'">'.$year.'</option>';
}
echo'</select><br />';

echo '<select name="monthList" id="months">';
foreach($monthList as $month) {
    echo'<option value="'.$month.'">'.$month.'</option>';
}
echo '</select>';
echo '<input type=\'submit\' value=\'See Results\'>';
echo '</form'>

$ yearList和$ monthList只是预先填充的数组。所以现在从这里我想点击See Results按钮并使用下拉选项中的参数查询我的sql数据库。

$database = $_POST['yearList'];
$month = $_POST['monthList'];

$wpdbtest_otherdb = new wpdb('Username', 'Password', $database, 'localhost');

$qStr = "SELECT * FROM $month";
$myResults = $wpdbtest_otherdb->get_results($qStr, OBJECT); 

1 个答案:

答案 0 :(得分:0)

听起来您想要将AJAX调用发送到单独的php页面以进行安全性和处理,然后让PHP返回XML,通过AJAX回调将其解析回第二个选择框。它可能有点乱,但它允许您检查用户可能注入的奇怪的表单值。

编辑:PHP将接收您的AJAX参数作为$ _GET或$ _POST数组的一部分。从那里,您可以执行检查和数据库调用(或不执行),然后添加header("Content-Type:text/xml");,以便服务器使用正确的标头将其发回。之后,您需要回显您希望JavaScript接收的XML格式的数据。如果请求应该通过,请记住不要回应除XML以外的任何内容。

相关问题