----------------------------------------------------------------------------------------------------

HTML部分:

  1. <table>
  2.   <tr class="active ">
  3.     <td>排序</td>
  4.     <td>序号</td>
  5.   </tr>
  6.  
  7.   <?php if($lesson_list):?>
  8.     <?php foreach($lesson_list as $val):?>
  9.     <tr>
  10.       <td><input class="form-control" type="text" name="lesson_sort" value="<?=$val['lesson_sort'];?>"></td>
  11.       <td><?=$val['id'];?></td>
  12.     </tr>
  13.     <?php endforeach;?>
  14.   <?php endif;?>
  15. </table>

相关要点:

  1. /**
  2. * 如何判断对象存在或为空
    * @黑眼诗人 <www.chenwei.ws>
  3. */
  4. 1. JS判断对象是否存在:
  5.   if(typeof myObj == 'undefined')
  6.   {
  7.     var myObj = {}
  8.   };
  9.  
  10. 2. 判断对象是否为空:
  11. /**
  12. * 判断对象是否为空
  13. * @param obj obj 对象
  14. * @return bool true非空,false为空
  15. * @Chenwei <www.chenwei.ws>
  16. */
  17. function isEmptyObj(obj)
  18. {
  19. var k = 0;
  20. var obj = obj;
  21.  
  22. for(var i in obj)
  23. {
  24. k++;
  25. }
  26.  
  27. if(k != 0)
  28. {
  29. return true;
  30. }
  31. else
  32. {
  33. return false;
  34. }
  35. }

JS端:

  1. (一)
    /**
    * 索引数组形式
    */
  2. var info = new Array();  //创建数组对象,这里不能使用var info = {}; 提示info.push is not a function
  3.  
  4. $('input[name="lesson_sort"]').each(function(i, n){
  5.  
  6.   var id = $(this).parent('td').next('td').text();
  7.  
  8.   var lesson_sort = $(this).val();
  9.  
  10.   info.push(lesson_sort);  //数组尾部添加元素,索引数组形式
  11.  
  12. });
  13.  
  14. //console.log(info);  //索引数组对象储值,["0","0","0"]
  15.  
  16. var str = JSON.stringify(info); //转为字符串,["0","0","0"]
  17.  
  18. (二)
  19. /**
  20. * 前台保存提交排序(关联数组形式)
  21. */
  22. function saveCateSort()
  23. {
  24.   var info = {};  //创建对象,这里不能使用var info = new Array(); 最后输出的值并非关联数组
  25.  
  26.   $('input[name="lesson_sort"]').each(function(i, n){
  27.  
  28.     var id = $(this).parent('td').next('td').text();
  29.  
  30.     var lesson_sort = $(this).val();
  31.  
  32.     info[id] = lesson_sort;  //关联数组储值
  33.  
  34.   });
  35.  
  36.   //console.log(info);  //Object { 67="0", 68="0", 69="0"}
  37.  
  38.   var str = JSON.stringify(info); //转为json字符串,{"67":"0","68":"0","69":"0"}
  39.  
  40.   if(isEmptyObj(info)){
  41.     //非空时更新
  42.     $.post(base_url + '?d=admin&c=cate&m=ajax_cate_sort', {str:str}, function(data){
  43.   if(data == '1'){
  44.        my_custom_tips('操作成功!', 2000, 1);
  45.   }else{
  46.   my_custom_tips(data, 2000);
  47.   }
  48.   });
  49.   }else{
  50.     //空时提示
  51.     my_custom_tips('操作成功!', 2000, 1);
  52.   }
  53. }

PHP端:

  1. /**
  2. * 保存排序(控制器方法,局部)
    */
  3. public function ajax_save_sort()
  4. {
  5.     $str = json_decode($this->input->post('str'));
  6. if($str)
  7. {
  8. foreach($str as $k=>$v)
  9. {
  10. $data['cate_sort'] = $v;
  11.  
  12. $bool = $this->cate->updateCateSort($k, $data);
  13. }
  14.  
  15. if( ! $bool)
  16. {
  17. echo '操作失败!'; exit;
  18. }
  19. else
  20. {
  21. echo '1';
  22. }
  23. }
  24. else
  25. {
  26. echo '1';
  27. }
  28. }
  29.  
  30. /**
  31. * 保存排序(模型控制器方法,局部)
  32. */
  33. public function updateCateSort($id, $data)
  34. {
  35. if($id && $data && is_array($data))
  36. {
  37. $where = array('id' => $id);
  38.  
  39. $bool = $this->db->where($where)->update('category', $data);
  40.  
  41. return $bool;
  42. }
  43. else
  44. {
  45. return false;
  46. }
  47. }

Link:https://www.cnblogs.com/farwish/p/3985762.html

[jQ/PHP]使用JS数组储值的两种情况(提交PHP处理)的更多相关文章

  1. [jQ/PHP]再谈使用JS数组储值的运用(提交PHP处理)

    --------------------------------------------------------------------------------------------------- ...

  2. 关于JS获取select值的两种实现方法

    前几天发了一篇关于javascript获取select值的方法,后来发现有另一种实现方法,所以就都发出来比较一下: 方法一:通过获取option标签的value值来确定: <!DOCTYPE h ...

  3. js对象取值的两种方式

    :"李四"}; var v1 = obj.name1; //张三, 使用点的方式 //报错,不能使用点的方式 ]; //李四,使用中括号的方式 var key = "na ...

  4. List转Datable(需区分对象充当List成员和数组充当List成员两种情况)

    对象充当List成员时: /// <summary> /// 将泛类型集合List类转换成DataTable /// </summary> /// <param name ...

  5. js中三元运算符的两种情况

    一.一般情况 <script type="text/javascript"> var b=5; (b == 5) ? a="true" : a=&q ...

  6. JS获取元素宽高的两种情况

    JS获取元素宽高分两种情况, 一.内联样式,也就是直接把width和height写在HTML元素中的style里: 这种情况使用     document.getElementById('xxx'). ...

  7. JavaWeb后台从input表单获取文本值的两种方式

    JavaWeb后台从input表单获取文本值的两种方式 #### index.html <!DOCTYPE html> <html lang="en"> & ...

  8. egg.js 通过 form 和 ajax 两种方式上传文件并自定义目录和文件名

    egg.js 通过 form 和 ajax 两种方式上传文件并自定义目录和文件名 评论:10 · 阅读:8437· 喜欢:0 一.需求 二.CSRF 校验 三.通过 form 表单上传文件 四.通过 ...

  9. 选中没有选中的复选框,匹配含有某个字符串的正则,json取值的两种方法,把变量定义在外面跟里面的区别

    一.筛选没有选中的复选框:not("input:checked") 二.匹配有VARCHAR的字符串:".*VARCHAR.*?" 三.json取值的两种方法 ...

随机推荐

  1. [SQL]卸载数据库清理注册表方法regedit

    .打开注册表. 开始——运行——regedit——确定 .然后找到下面的文件夹,删除掉: HKEY_CURRENT_USER\ Software\ Microsoft\ Microsoft SQL S ...

  2. 【TensorFlow学习笔记 】name_socpe variable_scope

    [引言]TensorFlow中的命名域是非常重要的概念,涉及到参数共享,方便命名参数管理,定义图结构 本文主要介绍name_scope 和 variable_scope,slim包中的arg_scop ...

  3. shiro 身份验证

    shiro身份验证: 参考链接:http://jinnianshilongnian.iteye.com/blog/2019547 即在应用中证明是本人进行操作,一般通过用户名来证明 在shiro中,用 ...

  4. linux系统配置jdk环境

    前提:linux服务器+JDK8-linux版本 工具:FileZilla+Xshell 将jdk上传到服务器的某个文件夹(本人是JDK) 进入该文件夹,输入tar xzvf  jdk-8u77-li ...

  5. pthread线程特定数据

    举个栗子 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/t ...

  6. 小朋友学C语言(5):常量和变量,for循环

    动手编写程序: #include <stdio.h> int main() { int a = 1; printf("a = %d\n", a); a = 2; pri ...

  7. How The Kernel Manages Your Memory.内核是如何管理内存的

    原文标题:How The Kernel Manages Your Memory 原文地址:http://duartes.org/gustavo/blog/ [注:本人水平有限,只好挑一些国外高手的精彩 ...

  8. 《linux性能及调优指南》 3.3 内存瓶颈

    摘要:3.3内存瓶颈OnaLinuxsystem,manyprogramsrunatthesametime.Theseprogramssupportmultipleusers,andsomeproce ...

  9. 洛谷 P2629 好消息,坏消息

    题目描述 uim在公司里面当秘书,现在有n条消息要告知老板.每条消息有一个好坏度,这会影响老板的心情.告知完一条消息后,老板的心情等于之前老板的心情加上这条消息的好坏度.最开始老板的心情是0,一旦老板 ...

  10. Missing artifact javax.transaction:jta:jar:1.0.1B

    下载https://pan.baidu.com/s/1hsfyj8S到某目录,比如: /Users/yintingting/Downloads 打开terminal,cd /Users/yinting ...