我正在使用ajax将数据从mysql加载到php。我想为我的网站创建编辑功能。此编辑将是模态的。 在单选输入类别已加载先前的ajax之后,按选项(子类别)的选择输入将由ajax加载。
我尝试了几个jquery事件来更改选择选项,但是没有人起作用。 这是我的模式文件中的脚本代码。
<script>
$(document).ajaxComplete(function() {
$("#editexp'.$poz.'").on("shown.bs.modal", function(){
$("input[name=payment'.$poz.'][value='.$method.']").prop("checked", true);
$("input[name=kategoria'.$poz.'][value='.$catid.']").prop("checked", true);
var category = '.$catid.';
var poz = '.$poz.';
$.ajax({
url:"expense_subcategory_change.php",
method:"POST",
data:{category:category,
poz:poz
},
success:function(data){
$("#subcategory'.$poz.'").html(data);
}
});
$("input[type=radio][name=kategoria'.$poz.']").change(function(){
var category = $(this).val();
var poz = '.$poz.';
$.ajax({
url:"expense_subcategory_change.php",
method:"POST",
data:{category:category,
poz:poz
},
success:function(data){
$("#subcategory'.$poz.'").html(data);
}
});
});
});
});
$("#subcategory'.$poz.'").ajaxComplete(function() {
$("#subcategory'.$poz.' ").find("option").each( function() {
var $this = $(this);
if ($this.val() == '.$subcatid.') {
$this.prop("selected","selected");
return false;
}
});
});
</script>
我也尝试过:
$("#subcategory'.$poz.'").ajaxComplete(function() {
$("#subcategory'.$poz.' option[value='.$subcatid.']").prop("selected","selected");
});
这两个函数在#subcategory中都没有ajaxComplete,在文档中没有第二个ajaxComplete
正在加载带有选项的输入,但始终选择第一个选项。
这是我的expense_subcategory_change代码的主要部分:
$result = mysqli_query($connection,"$sql_query");
$output .= '<select class="mb-3 w-50-100 " name="subcategory'.$poz.'">';
while($row = mysqli_fetch_array($result))
{
$output .= '<option value="'.$row['id'].'" >'.$row['sub'].'</option>';
}
$output .= '</select>';
echo $output;
答案 0 :(得分:1)
问题出在您的选择器中。您在选择元素中使用“名称”,但在“ dom”中搜索该元素。将您的PHP代码更改为:
$output .= '<select class="mb-3 w-50-100 " id="subcategory'.$poz.'">';
我用您提供的第二种方法进行了测试,因为它看起来更干净
$("#subcategory'.$poz.' option[value='.$subcatid.']").prop("selected","selected");
在此处https://jsfiddle.net/79kugn60/中查看解决方案(简化代码)
答案 1 :(得分:0)
如果您正在使用任何事件。尝试在您的函数中绑定该事件。这样每次事件都会被绑定。射击后。