Php jQuery如何在选项菜单下追加以指定项

Php jQuery如何在选项菜单下追加以指定项,php,jquery,Php,Jquery,我有一个数据库驱动的php选项菜单,如果页面被刷新,那么所有选项项都会正确缩进 如果我添加了一个新选项,但页面未刷新,则新选项不会出现在选项菜单中 然后我编写jQuery代码,这样,如果我向选项菜单添加一个新项,它将通过jQuery追加,但不会追加到正确的位置 示例:如果我选择计算机,并且如果我在文本框中写一个文本值作为“桌面计算机”,它将附加在选项菜单下,但我希望它附加在计算机选项值下 我该怎么做,谢谢 $(“#katID”).change(函数(){ var secilitext=$(“#

我有一个数据库驱动的php选项菜单,如果页面被刷新,那么所有选项项都会正确缩进

如果我添加了一个新选项,但页面未刷新,则新选项不会出现在选项菜单中

然后我编写jQuery代码,这样,如果我向选项菜单添加一个新项,它将通过jQuery追加,但不会追加到正确的位置

示例:如果我选择计算机,并且如果我在文本框中写一个文本值作为“桌面计算机”,它将附加在选项菜单下,但我希望它附加在计算机选项值下

我该怎么做,谢谢

$(“#katID”).change(函数(){
var secilitext=$(“#katID选项:选中”).text();
var sonuc=secilitext.split(“-”);
//控制台日志(sonuc);
var cizgisayisi2=(sonuc.长度);
var cizgisayisi=(cizgisayisi2-1);//sayılar sı
var katID=$(“#katID选项:选中”).val();
console.log(“İZGİSAYISI=“+cizgisayisi2”);
console.log(“KAT ID=“+katID”);
如果(katID!=0&&cizgisayisi==0){
cizgisayisi=1;
console.log(“cizgisayisi 1:+cizgisayisi”);
var gizli=$(“输入[name='cizgisayisi']”)val(cizgisayisi);
}else if(katID==0){
cizgisayisi=0;
console.log(“cizgisayisi 2:+cizgisayisi”);
var gizli=$(“输入[name='cizgisayisi']”)val(cizgisayisi);
}否则{
cizgisayisi2;
console.log(“cizgisayisi3:+cizgisayisi2”);
var gizli=$(“输入[name='cizgisayisi']”)val(cizgisayisi2);
}
//.append(新数组(++cizgisayisi).join
});
$(“表格#SayfaYukleForm”)。关于(“提交”,功能(活动){
event.preventDefault();
var eklenecekveri=新表单数据(本);
var baslik=$('#baslik').val();
$.ajax({
url:“添加到选项菜单.php”,
方法:“张贴”,
资料来源:eklenecekveri,
数据类型:“JSON”,
contentType:false,
processData:false,
成功:功能(sonuc){
如果(sonuc.ok){
anamenukayitListe();
var son\u id=sonuc.son\u eklenen\u id;//last\u id具有最后一个插入id
var cizgisayisi=sonuc.cizgisayisi;
$('#katID')。附加($(''){
值:(子id),
文本:“-”。重复(cizgisayisi)+baslik
}));
$(#形式#SayfaYukleForm”)。触发器(“重置”);
//表格:约兰·安卡(yollanınca)用于重新安置temizlemek için
$(“#anamenuKayitEkle”).html(sonuc.ok).fadeIn(700);
setTimeout(函数(){
$(“#anamenuKayitEkle”).html(sonuc.ok).fadeOut(700);
//location.reload();
}, 2000);
$(“#summernote”).summernote(“重置”);//summernote文本区域alanınındaki yazılarıboşalt。
}否则如果(sonuc.hata){
$(“#anamenuKayitEkle”).html(sonuc.hata).fadeIn(700);
setTimeout(函数(){
$(“#anamenuKayitEkle”).html(sonuc.hata).fadeOut(700);
}, 2000);
}
},
错误:函数(jqXHR,异常){
console.log(jqXHR);
}
});
});
//kayıt ekle

选择一个类别
顶部菜单
电子学
-计算机
--台式机
--华硕台式机
--笔记本电脑
--药片
-——三星平板电脑
-电视

选择一个类别
顶部菜单
电子学
-计算机
--台式机
--华硕台式机
--笔记本电脑
--药片
-——三星平板电脑
-电视
var期权=[];
var baslik=$('#baslik').val();
$(“#katID选项”)。每个(函数()
{
options.push([$(this.val(),$(this.text());
var pieces=$(this.text().split(“”);
var=false;
美元每件(件、功能(i、val){
var pieces2=基本拆分(“”);
$。每个(片2,函数(i,值2){
如果(val&&val2&&val.toLowerCase().indexOf(val2.toLowerCase())!=-1&&found){
选项。推送([“some_id”,“-”+baslik]);
发现=真;
返回false;
}
})  
如果(找到)
返回false;
})        
});
$('#katID')。查找('option')。删除();
$。每个(选项、函数(i、val){
$('#katID')。附加($(''){
值:val[0],
正文:val[1]
}))
});
尝试运行此代码并根据需要修改代码,此代码对于匹配的元素运行良好

如果我选择了计算机,并且在文本框中写了一个文本值作为“桌面计算机”,它将附加在选项菜单下,但我希望它附加在计算机选项值下

您当前在底部附加了新选项,包括: )。附加($(“”{ 值:(子id), 文本:“-”。重复(cizgisayisi)+baslik })

相反,请使用
.after()
将新选项附加到所选选项之后:

$('#katID>option:checked').after($('<option>', {
    value: (son_id),
    text: " - ".repeat(cizgisayisi) + baslik
})
$('#katID>选项:选中
$('#katID>option:checked').after($('<option>', {
    value: (son_id),
    text: " - ".repeat(cizgisayisi) + baslik
})