2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 商品类型的下拉框绑定一个事件 通过ajax获取属性

商品类型的下拉框绑定一个事件 通过ajax获取属性

时间:2022-07-28 14:51:07

相关推荐

商品类型的下拉框绑定一个事件 通过ajax获取属性

html代码这么写

<!-- 商品属性 -->

<table cellspacing="1" cellpadding="3" width="100%" style="display:none;" class="tab">

<tr><td>

<select name="Goods[type_id]">

<option value="0">选择商品类型</option>

<?php foreach ($typeData as $k => $v): ?>

<option value="<?php echo $v['id']; ?>"><?php echo $v['type_name']; ?></option>

<?php endforeach; ?>

</select>

<ul id="attr_container"></ul>

</td></tr>

</table>

// 为商品类型的下拉框绑定一个事件,通过AJAX获取属性

$("select[name=Goods[type_id]]").change(function(){

// 获取ajax获取这个类型的所有的属性

var type_id = $(this).val();

if(type_id == 0)

{

$("#attr_container").html("");

return false;

}

$.ajax({

type: "GET",

url : "__CONTROLLER__/ajaxGetAttrByTypeId/type_id/"+type_id,

dataType: "json",

success : function(data)

{

// 处理服务器返回的json数据

// 循环每一个属性,拼成一个li的字符串,最后放到上面的ul中

// 以下语法相当于PHP中的: foreach($data as $k => $v):

var li = "";

$(data).each(function(k,v){

li += "<li>";

li += v.attr_name + " : ";

/********* 根据属性的类型生成一个不同的表单元素 **************/

if(v.attr_type == 0)

{

// 唯一属性

if(v.attr_option_value == "")

li += "<input type='text' name='GoodsAttr["+v.id+"]' />";

else

{

// 先把可选值转化成一个数组

var _attr = v.attr_option_value.split(",");

li += "<select name='GoodsAttr["+v.id+"]'>";

for(var i=0; i<_attr.length; i++)

{

li += "<option value='"+_attr[i]+"'>"+_attr[i]+"</option>";

}

li += "</select>";

}

}

else

{

li += "<a href='javascript:void(0);' οnclick='clone_row(this);'>[+]</a>";

// 单选属性

// 先把可选值转化成一个数组

var _attr = v.attr_option_value.split(",");

li += "<select name='GoodsAttr["+v.id+"][]'>";

for(var i=0; i<_attr.length; i++)

{

li += "<option value='"+_attr[i]+"'>"+_attr[i]+"</option>";

}

li += "</select>";

}

li += "¥<input name='GoodsAttrPrice[]' type='text' value='0.00' />元";

li += "</li>";

});

// 把构造好的LI放到UL中

$("#attr_container").html(li);

}

});

});

在控制器中这么写

public function ajaxGetAttrByTypeId($type_id){

$attrModel=M('attribute');

$data=$attrModel->where('type_id='.$type_id)->select();

echo json_encode($data);

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。