[英]How do i display specific results from SQL database in a HTML TABLE using select menus
我已经在这里待了几个小时,我已经取得了一些突破,但是目前我仍处于停滞状态。 我有一个SQL数据库,用于存储车辆信息,例如品牌,型号和年份。 我想做的是允许用户修改查询并仅显示特定结果。
我知道如何一次显示所有记录,但是我想添加的是用户选择说“丰田”这样的品牌时,我只希望该特定品牌出现。 通过使用以下代码,我确实到达了其中的一些位置:
<form method="post" action="">
<div id="search_query" >
Make
<select name="make" size="0">
<option value="honda">Honda</option>
<option value="toyota">Toyota</option>
<option value="nissan">Nissan</option>
</select>
<input type="submit" name="submit" value="submit">
</div>
</form>
<?php
$db_con = mysql_connect('localhost', 'root', '');
if (!$db_con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db('my_db', $db_con);
$make = mysql_real_escape_string($_POST['make']);
$sql = sprintf("SELECT * FROM chjadb_vehicles WHERE v_make= '$make' ");
$result = mysql_query($sql);
echo "<table width= 970 border=1>
<tr>
<th width='120' scope='col'>Image</th>
<th width='170' scope='col'>Details</th>
<th width='185' scope='col'>Seller</th>
<th width='126' scope='col'>Price</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td> <img src=" .$row['v_image']. " width =200 height = 130>" . "</td>";
echo "<td>". $row['v_year'] . " " . $row['v_make'] . " ". $row['v_model'] . " ". $row['b_type']. "</td>";
echo "<td>". $row['user_id'] ."</td>";
echo "<td>". $row['v_price'] ."</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($db_con);
?>
但是,当我最初运行页面时,出现以下错误:“注意:未定义的索引:在第62行的C:\\ xampp \\ htdocs \\ carhuntja.com \\ buy_a_car.php中进行制作”
我做了一些研究,意识到这是因为我没有设定价值,这是我要做的,因为我要转到该页面的开头,希望显示所有车辆。
问题在于查询是在用户选择品牌之前发送的。 要解决此问题,您需要通过在if(isset($_POST['submit']))
包裹您的PHP代码来检查用户是否确实提交了表单(使用“ submit”,因为这是您的提交按钮的name
) 。
//place connection code here (do not query the database yet)
if(isset($_POST['submit']))
{
//all of the database retrieval code
}
else
{
$query_makes = "SELECT v_make FROM chjadb_vehicles";
$result_makes = mysqli_query($query_makes);
echo "Please choose a make."
//echo opening select tag
while($row = mysql_fetch_array($result_makes))
{
//echo each option tag
}
//echo ending select tag
}
另外,您在独立的输入标签中缺少斜线。 最后,您应该使用MySQLi函数,因为MySQL函数已在PHP中弃用。
当页面首次加载时,您需要运行以下查询:
SELECT * FROM chjadb_vehicles
您需要检查用户是否单击了Submit按钮并发布了make字段,以使用isset()进行此操作:
if (isset($_POST['make']){ $make = mysql_real_escape_string($_POST['make']); }
编辑:
首次加载页面时,您将显示所有车辆。
在您的JavaScript中,将onSelect evvent绑定到下拉列表,一旦用户选择了一个make,便向服务器发送ajax请求并显示来自服务器的新结果,因此看起来像这样:
$('#search_query select').change(function(){
//get the selected option text
var selectedVal = $(this).find('option:selected').text();
//send ajax request
$.ajax( {
url : url,
type : "POST",
data : selectedVal ,
dataType : 'json',
success : function(data) {//handle returned data}
})
});
我建议您在这里查看有关jquery的完整VIDEO教程。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.