我有三个单选按钮。我想选择一个单选按钮值并将该选择传递给mysql查询。我不想使用提交按钮。 例如:如果我选择卡车或汽车,我希望将值传递到where条件
<form action="example.php" method="post">
<input type="radio" name="vehicle" value="All Vehicles" checked> All Vehicles
<input type="radio" name="vehicle" value="Truck"> Truck
<input type="radio" name="vehicle" value="Cars"> Cars
</form>
<?php
$type = $_POST['Vehicle'];
if ($type == "All Vehicle") {
$sql ='select distinct reservation_id,Vehicle,rental_price from vehicle_reservation';
$query = mysqli_query($conn, $sql);
if (!$query) {
die ('SQL Error: ' . mysqli_error($conn));
}
}
else ($answer == "Truck") {
$sql ='select distinct reservation_id,Vehicle,rental_price from vehicle_reservation where v.type="Truck"';
$query = mysqli_query($conn, $sql);
if (!$query) {
die ('SQL Error: ' . mysqli_error($conn));
}
}
?php
答案 0 :(得分:0)
首先让我们澄清你的php代码在服务器上运行,并且html和任何可以使用的javascript都可以在网络浏览器上运行。
话虽如此,很明显,浏览器中的选择必须以某种方式到达服务器才能包含在查询中。
您可以采用以下两种方式:
1)使用按钮或其他一些javascript事件提交表单中的数据。
2)使用ajax调用,绑定到一些javascipt事件,该事件也在后台提交数据。在这里,您可以选择将其作为表单或json等其他内容发送。
答案 1 :(得分:0)
尝试使用jquery ajax编辑的代码
<?php
//replace connection variables with yours.
//hope you store Vehicle with names in vehicle_reservation table
$conn = mysqli_connect('hostname','username','password','database');
if(!$conn){
$response = array('success'=>0,'data'=>'unable to connect with db');
}else{
$type = $_POST['Vehicle'];
$where = ($type != "All Vehicle")?" WHERE Vehicle='".$type."'":"";
$sql ='select distinct reservation_id,Vehicle,rental_price from vehicle_reservation'.$where;
$query = mysqli_query($conn, $sql);
if (!$query) {
$response = array('success'=>0,'data'=>mysqli_error($conn));
}else{
if(mysqli_num_rows($query)>0){
$data = mysqli_fetch_array($query);
$response = array('success'=>1,'data'=>$data);
}else{
$response = array('success'=>0,'data'=>'No records found');
}
}
}
echo json_encode($response);
?>
在html文件中
<script>
$(document).on('click','input[name="Tool"]:radio',function() {
var val = $(this).val();
console.log(val);
$.ajax({
type:"POST",
url:"C:\example.php",
data:'Vehicle='+val,
success:function(response) {
console.log(response);
}
});
})
</script>