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);
}

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

  1. knockoutjs foreach array绑定 表格 下拉框绑定

    转载http://desert3.iteye.com/blog/1480471 knockoutjs foreach array绑定 表格 下拉框绑定 博客分类: Javascript   动态表格使 ...

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

    /*******步骤有四个,缺一不可*********/ function () {xxxxxx = Ext.extend(construct, {InitControl: function () { ...

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

    html代码: ①两个下拉框,一个是省,另一个市 <tr> <td>省:</td> <td> <select id="ProvinceI ...

  4. robotframework文本类型的下拉框

    对于下拉框定位和输入,这里主要遇到有两种类型的下拉选择. 其中一个类型是select-options格式,如图 这种方式的定位可以使用select from list by value或select ...

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

    对于下拉框定位和输入,这里主要遇到有两种类型的下拉选择. 其中一个类型是select-options格式,如图 这种方式的定位可以使用select from list by value或select ...

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

    这是我在学习锋利的 jquery 书中 5.1.4 的代码时遇到的一个小问题,源代码如下: <head> <style type="text/css"> * ...

  7. vue select下拉框绑定默认值

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

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

    DevExpress:下拉框绑定数据源 (ComboBoxEdit,LookUpEdit) DevExpress:下拉框绑定数据源 (ComboBoxEdit,LookUpEdit) // 设置下拉框 ...

  9. jquery 获取下拉框 某个text='xxx'的option的属性 非选中 如何获得select被选中option的value和text和......

    jquery 获取下拉框 某个text='xxx'的option的属性 非选中 5 jquery 获取下拉框 text='1'的 option 的value 属性值 我写的var t= $(" ...

随机推荐

  1. RedHat-Linux操作指令第1篇

    不同的linux系统切换方式会稍有一点差别 从图形界面切换到字符界面:Alt+F(1-8) 或者 Alt+Ctrl+Shift+F(1-8) 从字符界面切换回图形界面:Alt+F7 字符界面启动到图形 ...

  2. AutumnWater 秋水SRC平台

    持续给自己挖坑,简单介绍一下AutumnWater 秋水SRC平台趴: SRC开源漏洞响应平台 AutumnWater 秋水SRC平台 后端使用Python-Flask(蓝图)编写 前端使用少量VUE ...

  3. 【面试题】在浏览器中输入URL后,执行的全部过程。会用到哪些协议?(一次完整的HTTP请求过程)

    整个流程如下: 域名解析 为了将消息从你的PC上传到服务器上,需要用到IP协议.ARP协议和OSPF协议. 发起TCP的三次握手 建立TCP连接后发起HTTP请求 服务器响应HTTP请求 浏览器解析h ...

  4. 小齐读者拿到快手、百度、网易等 offer 的独门秘籍!

    小齐说: 这篇文章来自读者冰红茶,他刚结束了秋招,拿了很多家 offer. 和他聊完之后,我觉得他的备考思路也完全适用于美国的面试,只是分值要调整一下,但是具体每一块的内容,地球村通用.所以分享给大家 ...

  5. AtCoder Grand Contest 017 (VP)

    contest link Official Editorial 比赛体验--之前做题的时候感觉 AtCoder 挺快的,现在打了VP之后发现还是会挂的--而且不是加载缓慢或者载不出来,直接给你一个无法 ...

  6. 题解-ARC058D Iroha Loves Strings

    题面 ARC058D Iroha Loves Strings 给定 \(n\) 个字符串,从中选出若干个按给出顺序连接起来,总长等于 \(m\),求字典序最小的,保证有解. 数据范围:\(1\le n ...

  7. AcWing 339 .圆形数字

    大型补档计划 题目链接 设 \(f[i][j]\) 表示二进制下,数字有 \(i\) 位, \(0\) 的个数 - \(1\) 的个数 \(=\) \(j\) 的方案数 \(f[0][0] = 1;\ ...

  8. STL——容器(Set & multiset)编译器提供的16种构造(挖个坑)

    Set & multiset 在vs2019编译器中提供了16种构造方法 1.默认的无参构造 2.比较容器内容,key_comp()函数返回一个比较key的函数. 3.使用迭代器的区间拷贝,拷 ...

  9. 如何使用交易开拓者(TB)开发数字货币策略

    更多精彩内容,欢迎关注公众号:数量技术宅.想要获取本期分享的完整策略代码,请加技术宅微信:sljsz01 为何使用交易开拓者(TB)作为回测工具 交易开拓者(后文以TB简称)是一个支持国内期货市场K线 ...

  10. 精尽Spring MVC源码分析 - MultipartResolver 组件

    该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...