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

[email protected]黑眼诗人 <www.Chenwei.ws>-------------------------------

JS端:

(一)/** * 索引数组形式 * @黑眼诗人 <www.chenwei.ws> */
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"]

(二)
/**
 * 前台保存提交排序(关联数组形式)
 * @黑眼诗人 <www.chenwei.ws>
 */
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端:

/**
 * 保存排序(控制器方法,局部) * @黑眼诗人 <www.chenwei.ws>
 */
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‘;
        }
}

/**
 * 保存排序(模型控制器方法,局部)
 * @黑眼诗人 <www.chenwei.ws>
 */
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;
        }
}
时间: 2024-10-29 13:55:16

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

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

--------------------------------------------------------------------------------------------------- 从一个例子中看JS数组和对象的分工合作: /** * JS数组与对象使用.(传递多条json数据,实例局部) * @黑眼诗人 <www.chenwei.ws> */ function importL() { if(confirm('Sure?')) { var arr = []; var json

js对象取值的两种方式

var obj = {abc:"ss",nn:90}; var v1 = obj.abc;//使用点的方式 var v2 = obj["abc"];//使用中括号的方式 在实际项目中一般使用点,会方便许多,但是如果key是变量的话就不能使用点了,js会理解变量为对象的key值,造成混淆 1 var v3 = obj[key];//key是一个变量

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

前几天发了一篇关于javascript获取select值的方法,后来发现有另一种实现方法,所以就都发出来比较一下: 方法一:通过获取option标签的value值来确定: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>select</title> </head> <body> <form id="f

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

一.一般情况 <script type="text/javascript"> var b=5; (b == 5) ? a="true" : a="false"; document.write(" --------------------------- "+a); </script> 结果: --------------------------- true <script type="te

求一个数组当中最大(最小)值的两种计算方法

求一个数组当中最大(最小)值的两种计算方法 1.常用方法(以求最大值为例) 1 #include "stdafx.h" 2 #include <string> 3 using namespace std; 4 int _tmain(int argc, _TCHAR* argv[]) 5 { 6 int a[5] = { 1, 23, 2, 6, 7 }; 7 int array_length = sizeof(a) / sizeof(a[0]);//数组大小 8 int m

js判断复合数据类型的两种方式(typeof不奏效了)

js判断复合数据类型的两种方式(typeof不奏效了) 博客分类: Web前端-JS语言核心 JavaScript 作者:zccst typeof认为所有的复合数据类型都是"object",没法进一步细分,所以还得用其他方法 先上结论: 1,(arr && typeof(arr) === "object" && arr.constructor === Array) 2,Object.prototype.toString.call(ar

JS取地址栏参数的两种方法

第一种方法: function GetQueryString(name){ var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if(r!=null)return unescape(r[2]); return null;} 第二种方法: function getParamValue(

小程序项目别的页面初始化拿到的值为两种状态(已解决)

小程序项目别的页面初始化拿到的值为两种状态,其他页面拿不到app.js全局globalData下全局的cookie app.js文件 onLaunch: function () { console.log('app-onLaunch') this.getUserInfo(); }, onShow:function(){ console.log('app-onShow') }, // 获取用户信息,登录 getUserInfo: function (callBack) { let that = t

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

JavaWeb后台从input表单获取文本值的两种方式 #### index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <input type="text" name="n