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;