[jQ/PHP]使用JS数组储值的两种情况(提交PHP处理)
----------------------------------------------------------------------------------------------------
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处理)的更多相关文章
- [jQ/PHP]再谈使用JS数组储值的运用(提交PHP处理)
--------------------------------------------------------------------------------------------------- ...
- 关于JS获取select值的两种实现方法
前几天发了一篇关于javascript获取select值的方法,后来发现有另一种实现方法,所以就都发出来比较一下: 方法一:通过获取option标签的value值来确定: <!DOCTYPE h ...
- js对象取值的两种方式
:"李四"}; var v1 = obj.name1; //张三, 使用点的方式 //报错,不能使用点的方式 ]; //李四,使用中括号的方式 var key = "na ...
- List转Datable(需区分对象充当List成员和数组充当List成员两种情况)
对象充当List成员时: /// <summary> /// 将泛类型集合List类转换成DataTable /// </summary> /// <param name ...
- js中三元运算符的两种情况
一.一般情况 <script type="text/javascript"> var b=5; (b == 5) ? a="true" : a=&q ...
- JS获取元素宽高的两种情况
JS获取元素宽高分两种情况, 一.内联样式,也就是直接把width和height写在HTML元素中的style里: 这种情况使用 document.getElementById('xxx'). ...
- JavaWeb后台从input表单获取文本值的两种方式
JavaWeb后台从input表单获取文本值的两种方式 #### index.html <!DOCTYPE html> <html lang="en"> & ...
- egg.js 通过 form 和 ajax 两种方式上传文件并自定义目录和文件名
egg.js 通过 form 和 ajax 两种方式上传文件并自定义目录和文件名 评论:10 · 阅读:8437· 喜欢:0 一.需求 二.CSRF 校验 三.通过 form 表单上传文件 四.通过 ...
- 选中没有选中的复选框,匹配含有某个字符串的正则,json取值的两种方法,把变量定义在外面跟里面的区别
一.筛选没有选中的复选框:not("input:checked") 二.匹配有VARCHAR的字符串:".*VARCHAR.*?" 三.json取值的两种方法 ...
随机推荐
- axublogcms1.0.6|代码审计
这周的审计任务,两天前的任务呀~拖延症呀~ 这次审计一个博客----auxblogcms1.0.6,网上也有所记载,我下面会做个总结. axublog是一款php个人博客系统,小巧强大的PHP+MyS ...
- 第11章 拾遗4:IPv6(2)_给计算机配置IPv6地址
4. 给计算机配置IPv6地址 4.1 无状态自动配置IPv6地址 (1)网络拓扑 ①无状态地址自动配置是指不需要DHCP服务器进行管理,由客户端向路由器发送前缀请求(RS)询问其所在网段.路由器收到 ...
- windows下解决python输出utf-8中文
class UnicodeStreamFilter: def __init__(self, target): self.target = target self.encoding = 'utf-8' ...
- 安全测试6_Web安全工具第二节(代理抓包分析工具)
上节课讲了浏览器及扩展,这节课继续来学习下抓包分析. 首先看下下图,了解下代理工具的原理:代理就相当于收费站一样,任何要通过的车辆必须经过它. 浏览器的代理我们可以通过设置进行手动设置代理,或者通过P ...
- sql语句基础(一)
数据库基本操作 创建数据库 CREATE DATABASE database-nam 2. 删除数据库 drop database dbname 3. 备份sql server --- 创建 备 ...
- android 开发 写一个RecyclerView布局的聊天室,并且添加RecyclerView的点击事件
实现思维顺序: 1.首先我们需要准备2张.9的png图片(一张图片为左边聊天泡泡,一个图片为右边的聊天泡泡),可以使用draw9patch.bat工具制作,任何图片导入到drawable中. 2.需要 ...
- 改变jupyter notebook默认初始文件路径 - 关于快捷方式
jupyter notebook home path changing - %USERFROFILE% and Configure file 如何改变jupyter notebook默认初始文件路径, ...
- Flex的一些小实例
1,以上是一个导航菜单 2一下是一个撑开的mx:Spacer
- hadoop集群namenode同时挂datanode
背景:(测试环境)只有两台机器一台namenode一台namenode,但集群只有一个结点感觉不出来效果,在namenode上挂一个datanode就有两个节点,弊端见最后 操作非常简单(添加独立节点 ...
- Shell 编程 (变量和条件测试)
变量: 1 . 变量声明 直接使用变量 + 赋值 #!/bin/bash NAME='HELLO WORD' echo $NAME 使用 declare 关键字声明 declare(选项)(参数) + ...