【问题标题】:Json Ajax result in html optionJson Ajax 导致 html 选项
【发布时间】:2017-05-09 12:43:18
【问题描述】:

查看我的代码:文件一显示数据二选择框第二选择框依赖于第一个选择框值

    <?php
    $con=mysql_connect("localhost","root","root");
    mysql_select_db("register",$con);
    ?>
    <!DOCTYPE html>
    <html>
    <head>
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
     <script type="text/javascript">

        $(document).ready(function(){

            $("#category").change(function(){
             var value=$("#category option:selected").val();
             $.ajax({
                      type:'post',
                      url:'subcat.php',
                      data:{ kvalue : value },
                       datatype:'json',
                      success:function(data){
                        alert(data);
                        $("#response").html(data);
                      }

             })
        })
        })
     </script>
        <title></title>
    </head>
    <body>
    <form method="post">
        <table>
            <tr>
                <td>category:</td>
                <td><select id="category">
                <option>Select Category</option>
                <?php 
                $query=mysql_query("select * from category");
                while($row=mysql_fetch_array($query)){
                    ?>
               <option value="<?php echo $row['category'];?>"><?php echo $row['category'];?></option>
                    <?php
                }
                ?>


                </select>
                </td>
            </tr>
            <tr>
                <td>Sub cat:</td>
                <td><select >
                <option >dependent dropdown</option>
                <option id="response"></option>

                </select>
                </td>
            </tr>

        </table>
    </form>

    </body>
    </html>
another page for ajax call:

此页面将 json 格式的数据返回到第一个文件。问题是我有一个选择框,我想在我的选项中获取这些值,但我得到这个值,如果我要选择,那么所有值自动选择

<?php
$con=mysql_connect("localhost","root","root");
mysql_select_db("register",$con);
$val=strtolower($_POST['kvalue']);

if($val=='mobile'){
    $query=mysql_query("select mobile from subcat");
    while($row=mysql_fetch_array($query)){
        $row[] = $r;
        print json_encode($row);
        echo $row['mobile']."</br>";
}
}

问题``

我想在 html 选项中从 json 获取数据,但我得到了值,但它都是以选定的形式出现的,我如何获取或选择我想要的值??

【问题讨论】:

  • mysql_* 已弃用并从最新版本的 php 中删除。
  • 我想要解决方案,兄弟不建议我会在 mysqli 中解决,但这次我想要解决方案
  • 您想在第二个下拉菜单中显示数据并选择一个值吗?
  • 是的,Shafiqual bhai 你明白我的意思..
  • 不确定您的期望,但 如果 我得到的还不错:一个选择填充了 DB 数据 -> 一个选项通过 Ajax 发送一个值 -> 一个结果= 一个查询。如果是这样,您在哪里使用 $query=mysql_query("select mobile from subcat"); $val = strtolower($_POST['kvalue']); ?不应该是select mobile from subcat where subcat = '$val' 吗?

标签: php jquery json ajax


【解决方案1】:

检查此演示代码,其中选择选项更新以及您的连接和查询,我只是手动设置数据进行测试。这是你的 html 文件

<!DOCTYPE html>
<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <script type="text/javascript">

        $(document).ready(function () {

            $("#category").change(function () {
                var value = $("#category option:selected").val();
                $.ajax({
                    type: 'post',
                    url: 'subcat.php',
                    data: {kvalue: value},
                    datatype: 'json',
                    success: function (data) {
                        alert(data);
                        $("#response").html(data);
                    }

                })
            })
        })
    </script>
    <title></title>
</head>
<body>
<form method="post">
    <table>
        <tr>
            <td>category:</td>
            <td><select id="category">
                    <option>Select Category</option>
                    <option value="mobile">Mobile</option>
                    <option value="TV">Tv</option>
                    <option value="Phone">Phone</option>

                </select>
            </td>
        </tr>
        <tr>
            <td>Sub cat:</td>
            <td>
                <select id="response">
                    <option>dependent dropdown</option>

                </select>
            </td>
        </tr>

    </table>
</form>

</body>
</html>

这是您的 subcat.php 文件。我为测试手动设置数据。如果您想选择取决于您的选项数据,只需更新您的查询

<?php
//$con=mysql_connect("localhost","root","root");
//mysql_select_db("register",$con);
$val = strtolower($_POST['kvalue']);

if ($val == 'mobile') {
    //$query=mysql_query("select mobile from subcat");
    $data = array('Option1', 'Option2', 'Option3');
    foreach ($data as $value => $key) {
        echo '<option value="' . $value . '">' . $key . '</option>';
    }
}

如果您使用 ajax 发送选项选择第二个选项值,则更新查询,如

//$query=mysql_query("select mobile from subcat where subcat = '$val'");

这是我的演示数据,所以需要替换你的 sql 数据

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-21
    • 1970-01-01
    • 2012-10-23
    • 2019-06-28
    • 1970-01-01
    • 2017-07-14
    • 1970-01-01
    相关资源
    最近更新 更多