Ajax傳遞二維陣列到ThinkPHP控制器

2021-07-07 02:59:11 字數 1319 閱讀 4637

介紹:錄入專家資訊,其中有checkbox多選框,用於選擇專家的擅長領域。專家的資訊與對應的專業能力分別儲存兩張表。具體情況如下圖

首先是介面:這個checkbox是由jquery自動生成的,依據專業能力基礎資料表生成。

生成checkbox的**:

寫入資料之前先做文字框和多選框的文字判斷,包括各式,選擇狀態,必填欄位等。這裡貼一下判斷多選框的**

var boolmajor = chemajor.is(':checked')//checkbox狀態判斷
遍歷checkbox並賦值到陣列

var datamajor = new array();
for (var i = 0; i < chemajor.length; i++) );//專業能力陣列賦值

}}

每次迴圈用push推入的都是一維陣列,最後datamajor會成為二維陣列,接下來要對二維陣列進行json序列化

var jsonmajor = json.stringify(datamajor);//專業能力陣列用json序列化
接下來傳遞資料到控制器

$.ajax(>",

data:,//傳遞資料到控制器

success:function(result)

}})

後端thinkphp對陣列進行處理

$major=d("major");//定位資料表
$jsonmajor=$_post["jsonmajor"];//接收json序列
$arrmajor = json_decode($jsonmajor,true);//專業能力陣列反序列化
for($i=0;$i
$resultmajor = $major->addall($arrmajor);
if($resultexpert>0 && $resultmajor>0)
至此,這個二維陣列從生成到儲存到資料庫就結束了。

二維陣列的傳遞

可以用二維陣列名作為實參或者形參,在被呼叫函式中對形引數組定義時可以指定所有維數的大小,也可以省略第一維的大 明,如 void func int array 3 10 void func int array 10 二者都是合法而且等價,但是不能把第二維或者更高維的大小省略,如下面的定義是不合法的 v...

引數傳遞二維陣列

cpp view plain copy void func1 intiarray 10 intmain 編譯通過,注意形參宣告一定要給出第二個維度的大小,要不編譯不過。cpp view plain copy void func2 int parray 10 void func2 1 int parr...

引數傳遞二維陣列

來看 c primer 中給出的方法 void func1 int iarray 10 int main 編譯通過,注意形參宣告一定要給出第二個維度的大小,要不編譯不過。void func2 int parray 10 void func2 1 int parray 編譯通過,無法呼叫 int ma...