基于选中的单选框运行SQL查询

时间:2014-01-12 13:25:08

标签: php jquery sql

我有这个显示多个单选按钮的PHP代码:

<?php
foreach ($_SESSION["resellers"] as $reseller) {
    $sql2="SELECT * from reseller where sequence = '".$reseller."' ";
    $rs2=mysql_query($sql2,$conn) or die(mysql_error());
    $result2=mysql_fetch_array($rs2);
    echo '<input type="radio" name="reseller" value="'.$reseller.'" /> '.$result2["company"].'<br>';
}
?>

我希望根据选中的单选按钮在页面下方运行另一个SQL查询:

<select name="reseller_customer">
<option value="">Please Choose</option>
<?php
$sql2="SELECT * from customer where resellerid = '".$reseller."' ";
$rs2=mysql_query($sql2,$conn) or die(mysql_error());
$result2=mysql_fetch_array($rs2);
echo '<option value="'.$reseller.'">'.$result2["company"].'</option>';
?>
</select>

我该怎样做where resellerid = "CHECKED RADIO BUTTON"

3 个答案:

答案 0 :(得分:1)

为此,您应该使用一些ajax调用或其他东西,因为当用户选择单选按钮时已经执行了php。

要获取所选的单选按钮,您可以使用jquery:

<script>
    var id = $("#myform input[type='radio']:checked").val();
</sciprt>

然后,您可以发送带有$ id的ajax请求来执行所需的sql。

您还可以查看:How can I know which radio button is selected via jQuery?

ajax请求应如下所示:

function myAjaxRequest(id) {
    $.ajax({
        url: 'http://path/to/file/with/the/sql/function',
        type: 'POST',
        data: {id: id},
        success: function (response) {
            alert ("Everything went fine!)";
        }
    });
}

在具有Sql功能的文件中,您可以使用以下命令获取所选的ID:

$id = $_POST["id"];

答案 1 :(得分:0)

由于“CHECKED RADIO BUTTON”本身不是值,因此您之前执行的相同查询应该满足您的需求。选中单选按钮时,只会将选中的单选按钮的值传递给数据库。

答案 2 :(得分:0)

    <script>
        $(document).ready(function() {
            $("input[name='reseller']").change(function() {
                var resellerid = $(this).val();

                $.ajax({
                    type: "POST",
                    url: "company.php",
                    data: {resellerid: resellerid}
                })
                        .done(function(company) {
                            $("select[name='reseller_customer'] option[value='']").next().remove();
                            $("select[name='reseller_customer']").append("<option value='" + resellerid + "'>" + company + "</option>");
                        });
            });
        });
    </script>