目录

  • 手册
  • 思路
  • 1. 如果是自己写的ajax这样就可以了.
    • html里
    • 控制器里
  • 2. 如果是ecshop里,需要改写call方法为JQuery的ajax方法,才可以select2需要JQuery支持,ecshop原生的call与JQuery冲突.表格上面的搜索和下面翻页需要改写
    • pageheader_list.htm头页面里引入jquery.listtable.js
    • product_sn_list.htm页面引入jquery-1.11.1.min.js
    • jquery.listtable.js里


手册

https://select2.org/getting-started/basic-usage
http://select2.github.io/select2/

http://video.tudou.com/v/XMjgyNjg2OTE0OA==.html?spm=a2h0k.8191414.0.0&from=s1.8-1-1.2

插件下载地址:
链接:https://pan.baidu.com/s/1XV9DOzZX3zgqKOUnvPaJ7Q 密码:gnv2

思路

  1. 预加载select2的js样式
  2. onchange获取select框里的数据后发送ajax
  3. 控制器处理好后返回结果.
  4. 如果是ecshop搜索后返回的页面,替换整个页面,需要改写call方法为JQuery的ajax,添加成品与半成品的对应关系 时需要把事件绑定到document上才能抓到页面的元素

1. 如果是自己写的ajax这样就可以了.

html里

<link href="../../js/select2/select2.css" rel="stylesheet" />
<script src="../../js/select2/select2.js"></script><div class="select2div"></div><select  class="js-example-basic-multiple add_semi_sn_relate" name="sn_type[]" sn_id="{$sn.id}" multiple="multiple"> {foreach from=$semi_sninfo item=v}<option value="{$v.sn}" {if in_array($v.sn,$sn['semi_sn_arr'])}selected="selected"{/if} >{$v.sn_name}</option> {/foreach}            <!--  <option value="111" >111</option> <option value="222" >2222</option> <option value="333" >333</option>  --></select>
<script type="text/javascript">
$(document).ready(function() {$(".add_semi_sn_relate").select2(); //预加载select2效果//添加成品与半成品的对应关系 添加对应关系时需要把事件绑定到document上才能抓到页面的元素
$(document).on("change",'.add_semi_sn_relate',function() { var sns = $(this).val(); //当option里的值改变时获取它里的值,如果有多个,会获取到以,号隔开的值var sn_id = $(this).attr('sn_id');var url = 'product_sn.php?act=select2addGoodsRelate&sns=' + sns + '&sn_id=' + sn_id;// return false;$.get(url,function(data,status){var data = data;// return false;var data = JSON.parse(data);if(data.code>0){alert(data.msg);}else{// alert(data.msg);// listTable.loadList();}});
});
</script>

控制器里

elseif ($_REQUEST['act'] == 'select2addGoodsRelate')
{$sns = empty($_REQUEST['sns']) ? '' : trim($_REQUEST['sns']);if($sns=='null'){$sns = '';}$sn_id = empty($_REQUEST['sn_id']) ? '' : trim($_REQUEST['sn_id']);$sql = "UPDATE wdm_product_sn SET semi_sn = '".$sns."' WHERE id = $sn_id";  wdmlog('第'.__LINE__.'行','product_sn','select2addGoodsRelate');wdmlog($sql,'product_sn','select2addGoodsRelate');$db->query($sql);  $ret['code']=0;$ret['msg']= '添加成功';echo json_encode($ret,JSON_UNESCAPED_UNICODE);die;
}

2. 如果是ecshop里,需要改写call方法为JQuery的ajax方法,才可以select2需要JQuery支持,ecshop原生的call与JQuery冲突.表格上面的搜索和下面翻页需要改写

pageheader_list.htm头页面里引入jquery.listtable.js

把 pageheader.htm复制一份改为pageheader_list.htm
在pageheader_list.htm里删除listtable.js引入jquery.listtable.js

D:\phpStudy\WWW\work\wdm\trunk\www.wdmcake.cn\www\admin\templates\pageheader_list.htm
{insert_scripts files="../admin/js/jquery.listtable.js"}

product_sn_list.htm页面引入jquery-1.11.1.min.js

D:\phpStudy\WWW\work\wdm\trunk\www.wdmcake.cn\www\admin\templates\product_sn_list.htm

jquery.listtable.js下载地址
链接:https://pan.baidu.com/s/1CYXvzW4WFRkygkx8q5x48w 提取码:vlrx

{include file="pageheader_list.htm"}
{insert_scripts files="../js/utils.js}
<!--  这里指的是引入的根目录下的/js/test.js -->
{insert_scripts files="../admin/js/validator.js,jquery-1.11.1.min.js"}<link href="../../js/select2/select2.css" rel="stylesheet" />
<script src="../../js/select2/select2.js"></script><form action="javascript:searchproduct();" name="addForm"  id="addForm"><!-- 分类 -->选择城市<select name="city" id="city" onchange="get_city();"><option value="-1">所在城市</option>{html_options options=$goods_city}</select><select name="sn_gid" id="sn_gid" onchange="get_products();" style="width:135px;"><option value="0">请选择商品</option>{foreach from=$goods_list item=goods}<option value="{$goods.goods_id}">{$goods.goods_sn}  {$goods.goods_name}</option>{/foreach}</select><!-- 商品:<input type="text" name="sn_name" value="" size="12" /> --><select name="sn_pid" id="sn_pid"><option value="0">请选择规格</option>{foreach from=$products item=product}<option value="{$product.product_id}">{$product.product_name}</option>{/foreach}</select><select name="sn_pizi" id="sn_pizi"><option value="0">请选择坯子</option>{foreach from=$pizi_list item=pizi}<option value="{$pizi.title}">{$pizi.title}</option>{/foreach}</select><!-- sn_type --><input type="hidden" name="sn_type" id="sn_type" value="1" size="15" /><!-- 半成品品号 --><input type="hidden" name="semi_sn" value="" size="5" /><!-- 半成品品名 --><input type="hidden" name="sn_name" value="" size="5" />成品品号<input type="text" name="sn_sn" value="" size="15" /><!-- 新货品 --><input type="hidden" name="sn_newsn" value="" size="5" />货品价格<input type="text" name="sn_price" value="" size="5" /><input type="button" value="添加成品" class="button" onclick="add_sn();" /><input type="submit" value="搜索" class="button"/></form><script type="text/javascript">
function searchproduct()
{//拿到表单里需要的值listTable.filter.gid = document.forms['addForm'].elements['sn_gid'].value;listTable.filter.pizi = document.forms['addForm'].elements['sn_pizi'].value;listTable.filter.sn = document.forms['addForm'].elements['sn_sn'].value;listTable.filter.newsn = document.forms['addForm'].elements['sn_newsn'].value;listTable.filter.sn_price = document.forms['addForm'].elements['sn_price'].value;listTable.filter.sn_name = document.forms['addForm'].elements['sn_name'].value;listTable.filter.goods_city = document.forms['addForm'].elements['city'].value;listTable.loadList(); //调用jquery.listtable.js里的listTable.loadList()方法发送ajax
}
//在ajax的成功里改写listTable.listCallback
listTable.listCallback = function(result, txt)
{if (result.error > 0){alert(result.message);}else{try{document.getElementById('listDiv').innerHTML = result.content;if (typeof result.filter == "object"){listTable.filter = result.filter;}listTable.pageCount = result.page_count;$(".add_semi_sn_relate").select2();}catch (e){alert(e.message);}}
}
</script>

jquery.listtable.js里

D:\phpStudy\WWW\work\wdm\trunk\www.wdmcake.cn\www\admin\js\jquery.listtable.js

/*** 载入列表*/
listTable.loadList = function()
{var args = "act="+this.query+"" + this.compileFilter();$.ajax({type:"POST",url:listTable.url,data:args ,dataType:"json",success:this.listCallback});}

转载于:https://www.cnblogs.com/haima/p/9662267.html

select2插件+ajax笔记相关推荐

  1. ubuntu18.04 Qt Creator 安装+ROS Qt Creator Plug-in 插件安装笔记

    ubuntu18.04 Qt Creator 安装+ROS Qt Creator Plug-in 插件安装笔记: 一.Qt Creator 5.10安装 官网下载地址: http://download ...

  2. Gradle插件学习笔记(二)

    之前介绍了Gradle插件的开发,这次会对功能进行一部分拓展,建议没有读过第一篇文章的朋友,先看一下Gradle插件学习笔记(一) Extension 之前的文章提到过,如何编写一个插件,但是并不能通 ...

  3. 完美解决select2插件提示信息是英文的问题

    本人用的是若依提供的select2插件,不知道有没有在此基础上重新包装,应该是没有的. 遇见的问题: 在开发业务时,有一个需求是,可以同时选择至多两个选项,所以当时一开始就想到select2插件. 但 ...

  4. jquery form插件(ajax)上传文件实现及原理

    原理: jquery form插件ajax上传文件的原理, 1.浏览器实现了XMLHttpRequest level2规范的,则插件使用xhr直接提交文件.通常来说chrome.firefox都实现了 ...

  5. Unity Cinemachine插件学习笔记,实现单目标和多目标之间切换

    Unity Cinemachine插件学习笔记,实现单目标和多目标之间切换 *版本要求Unity2017.1及以上. 参考资料: [官方] Unity 2017.1正式版发布 Cinemachine插 ...

  6. Unity Cinemachine插件学习笔记

    以下都是转载内容,能够比较直观的学习一些基础内容.现在的Cinemachine更新了许多新的功能,但是Cinemachine插件都ExamplesScences,去看一下官方例子和文档来学习更佳 *版 ...

  7. Unity Cinemachine插件学习笔记,结合Timeline实现简单场景动画

    Unity Cinemachine插件学习笔记,结合Timeline实现简单场景动画 *版本要求Unity2017.1及以上. 参考资料: [官方] Unity 2017.1正式版发布 [Unity] ...

  8. Jquery中使用select2插件实现ajax实时请求数据

    场景 效果 select2相关 select2官网: https://select2.org/ 实现 引入select2 页面中需要引入select.full.min.js和select2.min.c ...

  9. (转)基于Metronic的Bootstrap开发框架经验总结(3)--下拉列表Select2插件的使用...

    http://www.cnblogs.com/wuhuacong/p/4761637.html 在上篇<基于Metronic的Bootstrap开发框架经验总结(2)--列表分页处理和插件JST ...

  10. jQuery的select2下拉框的搜索功能(使用select2插件,方便简单)

    第一步: 引入我们用使用的插件 jquery:<script type="text/javascript" src="http://cdn.bootcss.com/ ...

最新文章

  1. JS_高程6.面向对象的程序设计(2)创建对象_1
  2. [骨科手术导航]2D/3D医学图像配准研究_罗博博_南方科技大学
  3. 2016年5月29日周总结
  4. 计算机专业毕业了,还要不要参加培训班?——Leo网上答疑(8)
  5. 【51Nod - 1279】 扔盘子(思维)(on-p会超时)
  6. C++ 中 async、packaged_task、promise 区别及使用
  7. 高岭土吸附阳离子_高岭石对金属阳离子的吸附特性研究
  8. 14. YAML(1)
  9. 2019最新 Java商城秒杀系统的设计与实战视频教程(SpringBoot版)_1-3课程要求与收益...
  10. linux map内存在哪里分配,linux内存分配与回收
  11. 基于小米球(Ngrok)实现外网访问
  12. 如何通过SCJP考试(含真题分析和考点)
  13. JAVA退房计算价格怎么写,JAVA宾馆客房管理系统报告.doc
  14. Sentinel控制台实时监控空白
  15. Crunching Cruncher send_music_thumb_backup.png failed, see logs
  16. AT2565 Chocolate Bar 洛谷
  17. C++:实现量化Libor市场模型测试实例
  18. HDFS fsimage和edits中的文件信息查看
  19. anywhere 随起随用本地服务器
  20. java中图片加载不出来的_请问图片加载不出来是为什么

热门文章

  1. WAP入门之WMLScript与JavaScrpt的不同之处
  2. 智能安全实验室-杀马(Defendio) 2.5.0.430 :自定义上报威胁
  3. 高并发系统的限流算法
  4. 设计模式---命令模式(C++实现)
  5. Java 8 新日期时间 API ( 上 ) – 本地日期时间
  6. 【渝粤教育】国家开放大学2018年春季 0008-21T简明现代汉语 参考试题
  7. MATLAB矩阵生成、引用
  8. Heartbeat实现web服务器高可用
  9. 【转】Java杂谈(五)
  10. [转]网上整理 Web JS 通用