我正在写一个预订系统。在主页面上,我会选择类别,查看可预订的设备。 例如,我有这样的代码:
<select>
<option value = "a">A</option>
<option value = "b">B</option>
<option value = "c">C</option>
<option value = "d">D</option>
<option value = "e">E</option>
</select>
我希望每个选项都与对数据库的单独查询相关联,这是在屏幕上动态显示查询的结果。
如果您能向我展示一些示例代码,那就太棒了。
此致
答案 0 :(得分:0)
$query = mysql_query("SELECT * FROM choices");
while($row=mysql_fetch_assoc($query)) {
echo '<option value="'.$row['value'].'">'.$row['value'].'</option>';
}
如果您需要对每个选项进行单独查询,则代码不会发生太大变化:
$query = mysql_query("(SELECT * FROM choices) UNION (SELECT * FROM choices1) [etc]");
while($row=mysql_fetch_assoc($query)) {
echo '<option value="'.$row['value'].'">'.$row['value'].'</option>';
}
答案 1 :(得分:0)
你的问题分为两部分; 1 - 检测要运行的查询,2 - 动态显示结果。
第1部分:检测要运行的查询:
根据硬编码选项和查询参数,使用上面的代码,您可以使用以下代码确定要运行的查询:
对于HTML部分,作为表单的一部分,按上面的方式创建选择(但使用名称)
<select name="querySelect">
<option value="a">A</option>
<option value="b">B</option>
</select>
在PHP中:
$querySelect = $_GET['querySelect'];
switch($querySelect)
{
case 'a':
$sql = "SELECT * FROM TableA";
break;
case 'b':
$sql = "SELECT * FROM TableB";
break;
}
$results = mysql_query($sql);
第2部分:动态显示结果
使用$results
,您对数据的处理非常取决于您想要实现的目标。在最基本的级别,您可以执行以下操作以动态显示结果表:
if(mysql_num_rows($results) > 0)
{
$header = false;
print "<table>"
while($row = mysql_fetch_assoc($results))
{
if(!$header)
{
$headings = array_keys($row);
print "<tr>";
for($i=0;$i<count($headings);$i++)
{
print "<th>".htmlspecialchars($headings[$i])."</th>";
}
print "</tr>";
$header = true;
}
print "<tr>";
foreach($row as $value)
{
print "<td>".htmlspecialchars($value)."</td>";
}
print "</tr>";
}
print "</table>"
}
else print "<h1>No Results Found!</h1>";
mysql_free_result($results);
我的答案中还有很多内容,因为我无法说明需要什么样的细节。您还需要涵盖与MySQL连接,错误处理,表格格式等内容......
<强>更新强> 嗯,非常有兴趣知道为什么这个被低估了。如果有人可以在评论中解释我误解了问题或误导了用户,我将不胜感激。
答案 2 :(得分:0)
如果您使用jQuery,代码可能看起来像
<select id="select_id">
<option value = "a">A</option>
<option value = "b">B</option>
<option value = "c">C</option>
<option value = "d">D</option>
<option value = "e">E</option>
</select>
<script type="text/javascript">
$('#select_id').change(function(e) {
// this code send selected value to the server
$.post('url', {selected_value: this.value}, function(response) {
// handle the server's response
});
});
</script>
在服务器端获取$ _POST中的值并进行查询。请记住 - 不要相信来自客户端的数据。你永远不知道谁在那边。始终检查传入的数据,不要使用这样的结构
$sql = "SELECT * FROM table_name WHERE name = '{$_POST['selected_value']}'";
因为可能有任何字符串,包括那些可以删除所有数据库,清除数据等等。