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

HTML部分:

<table>
  <tr class="active ">
    <td>排序</td>
    <td>序号</td>
  </tr>   <?php if($lesson_list):?>
    <?php foreach($lesson_list as $val):?>
    <tr>
      <td><input class="form-control" type="text" name="lesson_sort" value="<?=$val['lesson_sort'];?>"></td>
      <td><?=$val['id'];?></td>
    </tr>
    <?php endforeach;?>
  <?php endif;?>
</table>

相关要点:

/**
* 如何判断对象存在或为空
* @黑眼诗人 <www.chenwei.ws>
*/
1. JS判断对象是否存在:
  if(typeof myObj == 'undefined')
  {
    var myObj = {}
  }; 2. 判断对象是否为空:
/**
* 判断对象是否为空
* @param obj obj 对象
* @return bool true非空,false为空
* @Chenwei <www.chenwei.ws>
*/
function isEmptyObj(obj)
{
var k = 0;
var obj = obj; for(var i in obj)
{
k++;
} if(k != 0)
{
return true;
}
else
{
return false;
}
}

JS端:

(一)
/**
* 索引数组形式
*/
var info = new Array();  //创建数组对象,这里不能使用var info = {}; 提示info.push is not a function $('input[name="lesson_sort"]').each(function(i, n){   var id = $(this).parent('td').next('td').text();   var lesson_sort = $(this).val();   info.push(lesson_sort);  //数组尾部添加元素,索引数组形式 }); //console.log(info);  //索引数组对象储值,["0","0","0"] var str = JSON.stringify(info); //转为字符串,["0","0","0"] (二)
/**
* 前台保存提交排序(关联数组形式)
*/
function saveCateSort()
{
  var info = {};  //创建对象,这里不能使用var info = new Array(); 最后输出的值并非关联数组   $('input[name="lesson_sort"]').each(function(i, n){     var id = $(this).parent('td').next('td').text();     var lesson_sort = $(this).val();     info[id] = lesson_sort;  //关联数组储值   });   //console.log(info);  //Object { 67="0", 68="0", 69="0"}   var str = JSON.stringify(info); //转为json字符串,{"67":"0","68":"0","69":"0"}   if(isEmptyObj(info)){
    //非空时更新
    $.post(base_url + '?d=admin&c=cate&m=ajax_cate_sort', {str:str}, function(data){
  if(data == '1'){
       my_custom_tips('操作成功!', 2000, 1);
  }else{
  my_custom_tips(data, 2000);
  }
  });
  }else{
    //空时提示
    my_custom_tips('操作成功!', 2000, 1);
  }
}

PHP端:

/**
* 保存排序(控制器方法,局部)
*/
public function ajax_save_sort()
{
    $str = json_decode($this->input->post('str'));
if($str)
{
foreach($str as $k=>$v)
{
$data['cate_sort'] = $v; $bool = $this->cate->updateCateSort($k, $data);
} if( ! $bool)
{
echo '操作失败!'; exit;
}
else
{
echo '1';
}
}
else
{
echo '1';
}
} /**
* 保存排序(模型控制器方法,局部)
*/
public function updateCateSort($id, $data)
{
if($id && $data && is_array($data))
{
$where = array('id' => $id); $bool = $this->db->where($where)->update('category', $data); return $bool;
}
else
{
return false;
}
}

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. Markdown画各种图表

    并不是所有编辑器都支持,比如博客园这个就不支持... 流程图 st=>start: 开始 op=>operation: 首先按个按钮 op2=>operation: 那你从头开始吧 ...

  2. (转)C# 控制蜂鸣器发声

    原文地址:http://blog.csdn.net/tsinfeng/article/details/6201918 在C#中可以通过以下四种方式来实现蜂鸣或者报警,播放声音之类的功能.XP下对蜂鸣有 ...

  3. TCP/IP SIGPIPE信号

    往一个已经接受FIN的套接中写是允许的,接受到FIN仅仅代表对方不再发送数据. 在收到RST段之后,如果在调用write就 会产生SIGPIPE信息,对于这个信号的处理我们通常 解决方法 signal ...

  4. 生成excel的时候要用双引号。。。。。

    <?php header("Content-type:application/vnd.ms-excel"); header("Content-Disposition ...

  5. 05 Linux系统下的用户以及用户权限管理(权限管理介绍、用户管理、常见命令介绍)

    这一节我们介绍Linux的用户以及权限管理的前半段,包括:1.权限管理介绍: 2.用户管理: 3.常见命令 权限管理介绍 权限管理: 为了访问计算机资源,我们需要对其进行授权才能访问,根据什么东西来进 ...

  6. angularjs指令实现轮播图----swiper

    'use strict'; angular.module('app').directive('swipersLbt',swipers); swipers.$inject = ['$timeout']; ...

  7. dns 域名地址

    Public DNS+ 是属于 腾讯云旗下的公共 DNS 服务.拥有 80 多条国内线路和 4 条海外线路,有 BGP Anycast 技术,也是国内首家支持谷歌 ECS (edns-client-s ...

  8. 使用sqoop从mysql导入数据到hive

      目录 前言 一.使用的导入命令 二.遇到的问题及解决 1. 用文本字段进行分区的问题 2. Hadoop历史服务器Hadoop JobHistory没开启的问题 3. 连接元数据存储数据库报错 4 ...

  9. Javascript函数心得

    Javascript函数 Javascript函数是由事件驱动的或者当他被调用时执行的可重复使用的代码块.所以说我们光创建了函数不调用是没有啥用的,我们必须得调用它才能执行. 1.什么是函数 (1)函 ...

  10. linux环境下Mysql的卸载和重新安装和启动

    MySql安装 1 安装包准备 1.查看mysql是否安装,如果安装了,卸载mysql (1)查看 [root@hadoop102 桌面]# rpm -qa|grep mysqlmysql-libs- ...