我是 php 新手。我想在 ComboBox 上发生某些事件时更改查询。因此,根据该查询,我从 php 中的数据库检索数据。代码如下:-
<form method="POST" action="">
<select id="choose-color">
<option value="all">All</option>
<option value="blue">Blue</option>
<option value="black">Black</option>
<option value="white">White</option>
</select>
</form>
<?php
$conn = mysqli_connect("localhost","root","123");
mysqli_select_db($conn,"DwtCW");
$q = "Select * from Clothes";
$result = mysqli_query($conn, $q);
if (!$result) {
echo 'Some error';
}
while($row = mysqli_fetch_assoc($result)){
if($row{'Image_url'} != ''){
echo '<div>'
. '<img src='.$row{'Image_url'}.'/>'
.'</div>'
}
?>
当我选择 ComboBox 的蓝色选项时,我的 $q(上面代码中给出的查询)更改为
$q = "Select * from Clothes where colour = 'blue'";
所以页面上应该只出现蓝色衣服的图像。
我如何达到这个目标?
最佳答案
您需要向 PHP 页面发送 ajax 请求。 onChange事件将触发ajax请求并更改查询。
<form method="POST" action="">
<select id="choose-color">
<option value="all">All</option>
<option value="blue">Blue</option>
<option value="black">Black</option>
<option value="white">White</option>
</select>
</form>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
$(function(){
$('#choose-color').on('change', function(){
var color = $(this).val();
if(color){
$.ajax({
type: "GET",
url: "index.php", //or your php page
data: { color: color }
})
.done(function( msg ) {
alert( "Data Saved: " + msg );
});
}
});
});
</script>
<?php
$conn = mysqli_connect("localhost","root","123");
mysqli_select_db($conn,"DwtCW");
$whr = ' ';
//检查更改事件是否发布颜色
if ( isset($_GET['color'] ) ) {
$whr .= " where colour = '".$color."' ";
}
$q = "Select * from Clothes $whr";
$result = mysqli_query($conn, $q);
if (!$result) {
echo 'Some error';
}
while($row = mysqli_fetch_assoc($result)){
if($row{'Image_url'} == ''){
echo '<div>'
. '<img src='.$row{'Image_url'}.'/>'
.'</div>'
}
?>
关于php - 如何在 php 中更改查询 onclick 组合框事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20921711/