Php 在remove-select2选项上触发ajax-remove-from-mysql

Php 在remove-select2选项上触发ajax-remove-from-mysql,php,jquery,mysql,ajax,jquery-select2,Php,Jquery,Mysql,Ajax,Jquery Select2,我正试图用php和js(ajax)构建一个crud操作,我有一些过滤器,用户可以在添加操作时向类别添加更多过滤器,但在编辑时,我用ajax做了,单击从数据库中检索并填充输入,但在选择2时,我检索如下数据: var main_id = $(this).attr("id"); $.ajax({ url:"<?php echo $site_url;?>/actions/get_filters.php&qu

我正试图用
php
js(ajax)
构建一个crud操作,我有一些过滤器,用户可以在添加操作时向类别添加更多过滤器,但在编辑时,我用ajax做了,单击从数据库中检索并填充输入,但在选择2时,我检索如下数据:

        var main_id = $(this).attr("id");
        $.ajax({  
          url:"<?php echo $site_url;?>/actions/get_filters.php",  
          method:"POST",  
          data:{main_id:main_id},  
          dataType:"json",  
          success:function(data){
            var fl = [];
            var nr = [];
            $.each(data, function(i, field){
              fl.push(field.fil_opt+","+field.txt_fil);
              nr.push(field.id);
                  
            });

            for (i = 0; i < nr.length; ++i) {
                $('#filters_cat_update > option').each(function() {
                   $(this).attr('data-id', nr[i++]);
                });
            }
            $('#filters_cat_update').val(fl);
            $('#filters_cat_update').trigger('change'); // Notify any JS components that the value changed
               
          }  
        });
    //remove from edit options
    $('#filters_cat_update').on('select2:unselecting', function (e) {
        console.log(e.params.args.data.id);
    });
<div class="col-lg-6 col-md-12 col-sm-12">
    <select class="js-example-basic-multiple custom-select mr-sm-2" name="filters_update[]" multiple="multiple" id="filters_cat_update">
    <?php 
        $sqlf = mysqli_query($conn, "SELECT * FROM filtre WHERE vizibil=1 ORDER BY pozitie");
        while ($rf = mysqli_fetch_assoc($sqlf)) {?>
             <option data-id="" value="<?=$rf['id'];?>,<?=$rf['nume'];?>"><?=$rf['nume'];?></option>
    <?php } ?>
   </select>
</div>
我的html如下所示:

        var main_id = $(this).attr("id");
        $.ajax({  
          url:"<?php echo $site_url;?>/actions/get_filters.php",  
          method:"POST",  
          data:{main_id:main_id},  
          dataType:"json",  
          success:function(data){
            var fl = [];
            var nr = [];
            $.each(data, function(i, field){
              fl.push(field.fil_opt+","+field.txt_fil);
              nr.push(field.id);
                  
            });

            for (i = 0; i < nr.length; ++i) {
                $('#filters_cat_update > option').each(function() {
                   $(this).attr('data-id', nr[i++]);
                });
            }
            $('#filters_cat_update').val(fl);
            $('#filters_cat_update').trigger('change'); // Notify any JS components that the value changed
               
          }  
        });
    //remove from edit options
    $('#filters_cat_update').on('select2:unselecting', function (e) {
        console.log(e.params.args.data.id);
    });
<div class="col-lg-6 col-md-12 col-sm-12">
    <select class="js-example-basic-multiple custom-select mr-sm-2" name="filters_update[]" multiple="multiple" id="filters_cat_update">
    <?php 
        $sqlf = mysqli_query($conn, "SELECT * FROM filtre WHERE vizibil=1 ORDER BY pozitie");
        while ($rf = mysqli_fetch_assoc($sqlf)) {?>
             <option data-id="" value="<?=$rf['id'];?>,<?=$rf['nume'];?>"><?=$rf['nume'];?></option>
    <?php } ?>
   </select>
</div>

我想做的是,当我单击一个选项(例如“color”)以使用ajax并从表mysql中删除时,我为每个类别保存了过滤器并将其删除。 正如您在我的选项中所看到的,我已经从另一个用户可以创建过滤器的表中指定了过滤器的id和名称。
提前谢谢。

您可以使用
$(“#过滤器_cat_更新选项:选中”)
获取
数据id
,这将为您提供选中的选项。使用此选项,您可以使用
.attr
.val()
获取所需的值

演示代码

$('filters_cat_update')。选择2();
$(“#过滤器_cat_update”)。打开('select2:unselecting',函数(e){
var code=$(“#过滤器_cat_更新选项:选中”).attr('data-id');//获取id
var values=$(“#过滤器_cat_更新选项:选中”).val();//获取值
var数据=值。拆分(',');
var id=datas[0];//id
var color=datas[1];//color
console.log(“id-”+id+“color-”+color+“数据id-”+代码)
//ajax调用
$.ajax({
url:“您的url”,
方法:“张贴”,
数据:{
id:id,
颜色:颜色,
代码:代码
},//发送数据
成功:功能(数据){
控制台日志(“完成”)
}
});
});

颜色
颜色2
颜色3

您可以使用
$(“\filters\u cat\u update option:selected”)获取
数据id
这将为您提供所选选项。使用此选项,您可以使用
.attr
.val()
获取所需的值

演示代码

$('filters_cat_update')。选择2();
$(“#过滤器_cat_update”)。打开('select2:unselecting',函数(e){
var code=$(“#过滤器_cat_更新选项:选中”).attr('data-id');//获取id
var values=$(“#过滤器_cat_更新选项:选中”).val();//获取值
var数据=值。拆分(',');
var id=datas[0];//id
var color=datas[1];//color
console.log(“id-”+id+“color-”+color+“数据id-”+代码)
//ajax调用
$.ajax({
url:“您的url”,
方法:“张贴”,
数据:{
id:id,
颜色:颜色,
代码:代码
},//发送数据
成功:功能(数据){
控制台日志(“完成”)
}
});
});

颜色
颜色2
颜色3

您可以在
$(“#filters_cat_update”)下调用ajax。在('select2:unselecting',函数(e){..
。你试过了吗?你的解决方案是像颜色一样获取我的值。每个选项在数据库中都有带有唯一id的数据id,我想以某种方式将数据id值解析为ajax到php,以便从mysql中删除我从select2输入中删除的内容。你可以在
$(“#filters_cat_update”)下调用ajax。on('select2:unselecting',function(e) {..
。你试过了吗?你的解决方案是像颜色一样获取我的值。每个选项在数据库中都有具有唯一id的数据id,我想以某种方式将数据id值解析为ajax到php,以从mysql中删除我从select2输入中删除的内容。谢谢,我通过这样做解决了问题:e.params.data.element.dataset.id;谢谢,我通过这样做解决了问题这是:e.params.data.element.dataset.id;