PHP代码基于单选按钮选择运行mysql查询而无需提交

时间:2017-11-01 01:52:34

标签: php html mysql radio-button

我有三个单选按钮。我想选择一个单选按钮值并将该选择传递给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

2 个答案:

答案 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>