【问题标题】:How to use dynamic ListBoxes in php(Laravel)如何在 php(Laravel) 中使用动态列表框
【发布时间】:2015-10-11 21:59:23
【问题描述】:

实际上,我正在开发一个网站,我想将订单分配给送货人员和区域或面包师,他将从那里领取送货材料。

上图为送货人员取货地点的地区名称和面包师。因此,对于每个订单(行),我想创建 2 个列表框,并且根据第一个列表框的选择,我想更改第二个列表框的内容。

<select name="<?phpecho $CurrentOrders->comment_ID; ?>" id="courseid" style="width:100%;">
    <option value="">-----Select Pick Up Area----</option>
    <?php
        $Area = DB::table('area')
            ->get();
        foreach ($Area as $Area) {
    ?>
    <option id="<?php echo $Area->area_id; ?>" value="<?php echo $Area->area_name; ?>"><?php $Area->area_name; ?></option>
    <?php } ?>
</select>

</td>

以上代码是动态创建列表框。

</script>
<script type="text/javascript">
    $(document).ready(function () {
        $("#1").change(function () {
            var id = $(this).val();
            var dataString = 'id=' + id;
            //alert(dataString);
            $.ajax({
                type: "POST",
                url: "ajax_section.php",
                //data: dataString,
                data: {'id': id},
                success: function (html){
                    $("#sectionid").html(html);
                },
                error: function () {
                    alert('Error');
                }
            });
        });
    });

</script>

上面的脚本是根据第一个列表框的选择创建第二个列表框的内容。

<?php

if($_POST['id']) {
    $id=$_POST['id'];
    $sql=DB::table('vendors')
        ->where('vendors_area','=',$id)
        ->get();
    $count=0;
    foreach($sql as $sql) {
        $count++;
    }
    if ($count > 0) {
        echo "<option selected='selected'>---- Select Section Name ----        </option>";
        foreach($sql as $sql) {
            $id=$sql->vendors_id;
            $data=$sql->vendors_name;
            echo '<option value="'.$id.'">'.$data.'</option>';
        }
    }
}
?>

以上代码是根据第一个列表框的选择创建并显示第二个列表框的内容。

但所有这些代码仅适用于 1 个列表框。即使像我为第一个列表框(如#1)编写的那样更改了所有列表框的书面脚本,它也不能动态工作。 请帮帮我。

【问题讨论】:

    标签: php jquery laravel scripting listbox


    【解决方案1】:

    你需要改变

    $("#1").change(function ()
    

    $(document).on('change',"#1",function()
    

    在您的 javascript 代码中

    【讨论】:

    • 接下来会发生什么?
    • 对于动态生成的元素,使用$("#1").change(function ()不会触发任何事件
    • 那么对于其他元素,例如元素 2 $(document).on('change',"#2",function() 是否需要?
    • 不行,改成$(document).on('change',"#courseid",function()
    猜你喜欢
    • 2020-03-24
    • 2019-01-18
    • 1970-01-01
    • 2017-04-26
    • 2015-04-08
    • 2021-11-01
    • 2021-10-03
    • 2022-01-27
    • 2012-02-25
    相关资源
    最近更新 更多