Javascript ajax如何在动态生成的div中工作

Javascript ajax如何在动态生成的div中工作,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我在做产品销售,在产品销售中,我使用AJAX根据从下拉列表到另一个下拉列表的选择来捕获数据。当我动态创建一个字段时,它只工作一次,我希望它工作N次 以下是我的HTML和PHP代码: <div class="row col-md-12 mrg-top-20"> <h4 class="card-title" style="color:#ff0033">Sales Details</h4><br> <div class="col

我在做产品销售,在产品销售中,我使用AJAX根据从下拉列表到另一个下拉列表的选择来捕获数据。当我动态创建一个字段时,它只工作一次,我希望它工作N次

以下是我的HTML和PHP代码:

    <div class="row col-md-12 mrg-top-20">
<h4 class="card-title" style="color:#ff0033">Sales Details</h4><br>


    <div class="col-md-12"></div>
    <div class="row col-md-12" data-duplicate="add">

        <div class="col-md-4">
        <label>Select <strong>Installation Date</strong></label>
                <div class="form-group">
                    <div class="timepicker-input input-icon form-group">
                        <i class="ti-time"></i>
                        <input type="text" name="ins_date" class="form-control datepicker-1" placeholder="Datepicker" data-provide="datepicker">
                    </div>  
                </div>
        </div>
        <div class="col-md-4" id="sel_dynamic">
                <div class="form-group">
                <label>Select <strong>Manufacturer</strong></label>
                <select name="manu" id="manu" class="form-control" style="width:100%"> 
                    <option disabled="disabled" selected="selected">Select Manufacturer</option>
                    <?php
                        $data = mysqli_query($conn,"SELECT * FROM manufacturer_details");
                        while($itemcat = mysqli_fetch_array($data))
                        {
                    ?>
                    <option value="<?php echo $itemcat['MANUFACTURER_ID']; ?>"><?php echo $itemcat['MANUFACTURER_NAME'];?></option>
                    <?php
                        }
                    ?>
                </select>
                </div>
        </div>

        <div class="col-md-4">
            <div class="form-group">
                <label>Select <strong>Modal</strong></label>
                <select name="modal" id="modal" class="form-control" style="width:100%"> 
                    <option value="" selected disabled="disabled">Select Modal...</option>

                </select>
            </div>
        </div>

        <div class="col-md-4">  
            <div class="form-group">
                <label>Ser<strong>ial</strong></label>
                <input type="text" name="serial" placeholder="Enter Serial No" class="form-control">
            </div>
        </div>


        <div class="col-md-4">
            <label>Select <strong>AMC Start Date</strong></label>
            <div class="form-group">
                <div class="timepicker-input input-icon form-group">
                    <i class="ti-time"></i>
                    <input type="text" name="amc_date" class="form-control datepicker-1" placeholder="Datepicker" data-provide="datepicker" data-date-format="mm/dd/yyyy">
                </div>  
            </div>
        </div>


        <div class="col-md-4">
            <label>Select <strong>AMC End Date</strong></label>
            <div class="form-group">
                <div class="timepicker-input input-icon form-group">
                    <i class="ti-time"></i>
                    <input type="text" name="amc_edate" class="form-control datepicker-1" placeholder="Datepicker" data-provide="datepicker" data-date-format="mm/dd/yyyy">
                </div>  
            </div>
        </div>  

    </div>  

    <div>
        <input type="button" id="add" data-duplicate-add="add" class="btn btn-info" value="+"/>
    </div>
    <div >
        <input type="button"  data-duplicate-remove="add" class="btn btn-info" value="-"/>
    </div>
</div>

销售详情
选择安装日期 选择制造商 选择制造商 选择模态 选择模态。。。 Serial 选择AMC开始日期 选择AMC结束日期
下面是我每次调用Ajax的Js脚本

<script type="text/javascript">
    $(document).ready(function()
    {
        $("#sel_dynamic").on("change","#manu",(function() //just try to use on change
        {
            var id = $("#manu").val();
            var dataString = 'id='+ id;
            $.ajax
            ({
                type: "POST",
                url: "ajax_modal.php",
                data: dataString,
                cache: false,
                success: function(html)
                {
                    $("#modal").html(html);
                } 
            });
        });
    });
</script>

$(文档).ready(函数()
{
$(“#sel_dynamic”)。在(“更改”、“手动”、“函数()//只需尝试在更改时使用
{
var id=$(“#manu”).val();
var dataString='id='+id;
$.ajax
({
类型:“POST”,
url:“ajax_modal.php”,
数据:dataString,
cache:false,
成功:函数(html)
{
$(“#modal”).html(html);
} 
});
});
});
这是我的Ajax文件

    <?php
include('script/db.php');
if($_POST['id'])
{
    $id=$_POST['id'];
    $sql=mysqli_query($conn,"select * from modal_details where MANUFACTURER_ID='".$id."'");
?>

    <option selected disabled="disabled">Select Modal Name</option>
<?php
    while($row = mysqli_fetch_assoc($sql))
    {
        $id = $row['MODAL_ID'];
        $data = $row['MODAL_NAME'];
        echo '<option value="'.$id.'">'.$data.'</option>';
    }
}
?>
试试这个:
$(文档).ready(函数()
{
$(文档).on('change','#manu',function()
{
var id=$(“#manu”).val();
var dataString='id='+id;
$.ajax
({
类型:“POST”,
url:“ajax_modal.php”,
数据:dataString,
cache:false,
成功:函数(html)
{
$(“#modal”).html(html);
} 
});
});
});
试试这个:
$(文档).ready(函数()
{
$(文档).on('change','#manu',function()
{
var id=$(“#manu”).val();
var dataString='id='+id;
$.ajax
({
类型:“POST”,
url:“ajax_modal.php”,
数据:dataString,
cache:false,
成功:函数(html)
{
$(“#modal”).html(html);
} 
});
});
});
添加要选择的类,如下所示:
并使用下面的脚本
$(文档).ready(函数()
{
$(document).on('change','.manuClass',function()
{
var id=$(this.val();
var dataString='id='+id;
$.ajax
({
类型:“POST”,
url:“ajax_modal.php”,
数据:dataString,
cache:false,
成功:函数(html)
{
$(this).parent().parent().next().children().children(“#modal”).html(html);
} 
});
});
});
添加要选择的类,如下所示:
并使用下面的脚本
$(文档).ready(函数()
{
$(document).on('change','.manuClass',function()
{
var id=$(this.val();
var dataString='id='+id;
$.ajax
({
类型:“POST”,
url:“ajax_modal.php”,
数据:dataString,
cache:false,
成功:函数(html)
{
$(this).parent().parent().next().children().children(“#modal”).html(html);
} 
});
});
});

评论清楚地表明,您正在复制表单。我认为您的页面上有重复的ID,您的jQuery事件将不再工作。ID只能出现一次

请看这里:

评论清楚地表明,您正在复制表单。我认为您的页面上有重复的ID,您的jQuery事件将不再工作。ID只能出现一次

请看这里:

只是澄清一下。您希望模式详细信息生成一个选择框,其中包含您查询的结果吗?
每当我动态创建新字段时
->您正在动态创建哪个字段?此外,如果您动态创建多个字段,则
id
将由于重复而变得无用。请尝试使用添加id
id=在该选择框的父div中“dynamic_select”
,并使用
$(“#dynamic_select”)。在('change'、'#manu'、(function()
)上或简单地使用
$(document)。在('change'、'#manu'、(function()
您有任何错误吗?@SupunPraneeth没有,我没有收到任何错误,但下拉列表没有第二次工作,只是为了澄清。您想让模式详细信息生成一个选择框,其中包含您的查询结果?
每当我动态创建新字段时
->您动态创建的是哪个字段?如果您正在创建多个字段请尝试在该选择框的父div中使用add id
id=“dynamic\u select”
,并使用
$(“#dynamic\u select”)。on('change'、'#manu'、(function()
或简单地使用
$(document)。on('change'、'#manu'、(functi
Try this :

<script type="text/javascript">
    $(document).ready(function()
    {
        $(document).on('change','#manu',function()
        {
            var id = $("#manu").val();
            var dataString = 'id='+ id;
            $.ajax
            ({
                type: "POST",
                url: "ajax_modal.php",
                data: dataString,
                cache: false,
                success: function(html)
                {
                    $("#modal").html(html);
                } 
            });
        });
    });
</script>
Add the class to select as shown below: 

<select name="manu" id="manu" class="form-control manuClass" style="width:100%">

And use the below script

<script type="text/javascript">
    $(document).ready(function()
    {
        $(document).on('change','.manuClass',function()
        {
            var id = $(this).val();
            var dataString = 'id='+ id;
            $.ajax
            ({
                type: "POST",
                url: "ajax_modal.php",
                data: dataString,
                cache: false,
                success: function(html)
                {
                    $(this).parent().parent().next().children().children("#modal").html(html);
                } 
            });
        });
    });
</script>