我使用ajax下拉值生成,并且我无法获得之后选择的值。任何帮助吗?
我的链接就是那个
www.website.com/categories.php?ca=2&uc=16 //ca is category , uc is undercategory
的PHP / HTML
if(isset($_SESSION['ca'])){$cat = $_SESSION['ca'] ; }else if(isset($_GET['ca']) && $_GET['ca'] ){$cat =$_GET['ca']; }else{$cat =0;}
if(isset($_SESSION['uc'])){$undercat = $_SESSION['uc'] ; }else if(isset($_GET['uc']) && $_GET['uc'] ){$undercat =$_GET['uc']; }else{$undercat =0;}
<div class="searchdropdown">
<select name="category_group" id="category_group" class="lan_search" >
<option value="0">« <?php echo ALL_CATEGORIES ;?> »</option>
<?php
$get_categories= get_categories_list(0);
for($i=0; $i < count($get_categories['ids']);$i++ ){
echo "<option value='".$get_categories['ids'][$i]."' >".$get_categories['names'][$i]."</option>";
}
?>
</select>
</div>
<div class="searchdropdown uk">
<select class="lan_search subkomun_search" name="underKategory" id="underKategory">
<option value="0">« <?php echo ALL_SUB_CATEGORIES ;?> »</option>
</select>
</div>
JS
var cat = <?php echo $cat ;?>;
var ucate = <?php echo $undercat ;?>;
var kats_aray =[0,2,3,4,7,8,9];
$('#category_group option[value="' + cat + '"]').prop('selected', true); // this works
if(inArray($('#category_group').val(),kats_aray ) )
{$('.uk').css('display','none');}else{
$('.uk').css('display','block');
showSubKategory($('#category_group').val()); // Im generating the dropdown list by ajax
}
$('#underKategory option[value="' + ucate + '"]').prop('selected', true); // this doesnt work/ doesnt get selected value though is returns the right value if i alert it.
我在stackoverflow中找不到一些确切的问题。 我猜是什么它没有被选中因为页面被加载而ajax还没有返回,这就是为什么它没有被选中,但这只是我的猜测。 如果你需要 showSubKategory(val),请告诉我,但这只是在选定类别的值之后生成下拉列表以获得undercategories。
编辑:
这是ajax的函数
function showSubKategory(val){
$.ajax
({
type: "POST",
url: "process/process.php",
data:{"getsubcategories": "getsubcategories","cat":val} ,
dataType: 'json',
success: function(data)
{
$('#underKategory').css('opacity', '1');
var $el = $("#underKategory");
$el.empty(); // remove old options
var len = data.length;
$el.append($("<option></option>").attr("value", 0).text('Please Select'));
for( var i = 0; i<len; i++){
var id = data[i]['ids'];
var name = data[i]['names'];
$el.append("<option value='"+id+"'>"+name+"</option>");
}
}
});
}
编辑: 我想要解释一下。 这在刷新页面时不起作用,当使用onchange时,它可以通过jquery工作。