我创建了一个动态下拉列表,现在我想获取选项值但是对于第一个或父选择标记,我能够获取选项值但是在依赖选择列表的情况下我无法这样做。
动态下拉列表代码(HTML code)
<select name="category" id="category" class="update">
<option value="">Select one</option>
<?php if(!empty($list)) { ?>
<?php foreach ($list as $row) { ?>
<option value=" <?php echo $row['id']; ?><?php echo $row['name']; ?>">
<?php echo $row['name']; ?>
</option>
<?php } ?>
<?php } ?>
</select>
<select id="cat_type" name="cat_type" class="update">
<option value="">----</option>
</select>
<select id="cat_size" name="cat_size" class="update">
<option value="">----</option>
</select>
动态下拉列表(JS)代码
var formObject = {
run : function(obj){
obj.nextAll('.update').html('<option value="">----</option>').attr('disabled',true);
var id =obj.attr('id');
var v = obj.val();
jQuery.getJSON('update.php',{id : id, value:v},function(data){
if(!data.error){
obj.next('.update').html(data.list).removeAttr('disabled');
}
else{
obj.nextAll('.update').html('<option value="">----</option>').attr('disabled',true)
}
});
}
};
$(function(){
$('.update').live('change',function(){
formObject.run($(this));
});
});
依赖选择列表的PHP代码(组合所有三个代码以生成可靠的下拉列表)
<?php
if (!empty($_GET['id']) && !empty($_GET['value'])) {
$id = $_GET['id'];
$value = $_GET['value'];
try{
$objDb = new PDO('mysql:host=localhost;dbname=demo', 'root', '');
$objDb->exec('SET CHARACTER SET utf8');
$sql = "SELECT * FROM `category` WHERE `master`=?";
$statment = $objDb->prepare($sql);
$statment->execute(array($value));
$list = $statment->fetchAll(PDO::FETCH_ASSOC);
if (!empty($list)) {
$out = array('<option value="">Select Type</option>');
foreach ($list as $row) {
$out[] = '<option value="'.$row['id'].'">'.$row['name'].'</option>';
}
echo json_encode(array('error'=> false, 'list'=> implode('',$out)));
}
else{
echo json_encode(array('error'=> true));
}
}
catch(PDOexception $e){
echo json_encode(array('error'=> true));
}
}
else{
echo json_encode(array('error'=> true));
}
?>
代码,我想显示可靠列表选项值
$("#category").change(function(){
var item = $(category).val().charAt(2)+$(cat_type).val()+" "+mm+yy+" "+num;
$("#item_code").val(item);
});