【问题标题】:run SQL query based on radio box checked根据选中的单选框运行 SQL 查询
【发布时间】:2014-01-12 13:25:08
【问题描述】:

我有这个显示多个单选按钮的 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"

【问题讨论】:

    标签: php jquery sql


    【解决方案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"];
    

    【讨论】:

    • 这不是将 PHP 值 $id 设置为所选单选按钮的值
    • 我改成了 $id = $("#myform input[name='reseller']:checked").val();
    • 这是 javascript,所以应该是 var id = ... 我编辑了答案。但是你还没有完成。您应该将此值传递给 ajax 请求。
    • 如何将它传递给 ajax 请求?
    • 我不想刷新页面,可以吗?
    【解决方案2】:

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

    【讨论】:

    • 它是 foreach 循环中“经销商”单选按钮的值
    【解决方案3】:
        <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>
    

    【讨论】:

      猜你喜欢
      • 2019-11-28
      • 1970-01-01
      • 2014-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-07
      • 2016-07-22
      • 2015-07-09
      相关资源
      最近更新 更多