商品类型的下拉框绑定一个事件,通过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);‘ onclick=‘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);}
时间: 2025-01-17 16:26:21

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

EXT学习之——Ext下拉框绑定以及级联写法

/*******步骤有四个,缺一不可*********/ function () {xxxxxx = Ext.extend(construct, {InitControl: function () { var _this = this; /*****************步骤一:建数据store ******************/ //一级下拉框数据(此处注意,一定要把store写在combobox控件定义的前面,否则无法加载数据) var moduleStore = new Ext.da

easy ui 下拉级联效果 ,下拉框绑定数据select控件

html代码: ①两个下拉框,一个是省,另一个市 <tr> <td>省:</td> <td> <select id="ProvinceId" style="width: 150px;"> </select></td> <td>市:</td> <td> <select id="LocationId" style="

robotframework自动化系列:文本类型的下拉框

对于下拉框定位和输入,这里主要遇到有两种类型的下拉选择. 其中一个类型是select-options格式,如图 这种方式的定位可以使用select from list by value或select from list by list或select from list等格式进行选择定位,具体可以参考随机下拉框定位选择. 而这里主要说的就是这种文本框类型的下拉选择,格式如图所示 此种文本框类型的下拉选择操作方法: 鼠标定位到设备此文本类型下拉框中 文本框中输入设备的首字母这里以0为例, 输入字母后

jQ给下拉框绑定事件,为什么要绑定在框(select标签)上,而不是绑定在选项(option标签)上

这是我在学习锋利的 jquery 书中 5.1.4 的代码时遇到的一个小问题,源代码如下: <head> <style type="text/css"> * { margin:0; padding:0; } div.centent { float:left; text-align: center; margin: 10px; } span { display:block; margin:2px 2px; padding:4px 10px; background:

DevExpress:下拉框绑定数据源 (ComboBoxEdit,LookUpEdit)

DevExpress:下拉框绑定数据源 (ComboBoxEdit,LookUpEdit) 1 DevExpress:下拉框绑定数据源 (ComboBoxEdit,LookUpEdit) 2 3 4 // 设置下拉框 传入参数(需要设置的下拉框控件,查询的语句,默认第一行的内容) 5 public static void SetComboList(DevExpress.XtraEditors.ComboBoxEdit ComboList, string QuerySQL, string Firs

vue select下拉框绑定默认值

vue select下拉框绑定默认值: 首先option要加value值,以便v-model可以获取到对应选择的值 一.当没有绑定v-model,直接给对应的option加selected属性 二.当给select绑定了v-model的值的时候,要给v-model绑定的data值里写默认值

关于下拉框的onchange事件和onclick选择value值。

下拉框的onchange事件和onclick,一般最好都选择onchange事件,onclick可能会不兼容有些浏览器. 下面是代码: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>选择</title> <script src="js/lib/jquery/v1.12.3/jquery-1.

Winform 下拉框绑定问题

在Winform中下拉框绑定的时候只能读到text属性值,Id的值不管怎么搞都读取不到,所以就百度找到了一种方式: public void CmdBind() { var data = _logic.GetCurrency();//数据源 if (!data.Any()) return; foreach (var currency in data) { cmdCurrencyName.Items.Add(new CurrencyItem { CurrencyName = currency.Des

easy ui 下拉框绑定数据select控件

easy ui 中的下拉框控件叫做select,具体代码如下: html代码:①.这是一个公司等级的下拉框 <tr> <td>公司等级:</td> <td> <select id="CompanyDegree" style="width: 150px;"> </select></td> <td>上级或同级:</td> <td> <input