簡體   English   中英

YII通過表單發布將數組或數組的數組從視圖發送到控制器動作

[英]YII send array or array of array from view to controller action via form post

我對兩個不同類型的數據有一個疑問。

我在Yii中有一個視圖,它有一個窗體控件。 我想將一個array和一個array數組發送到控制器,以執行我的create動作。

數組是: $arraySons = ('albert','francis','rupert');

數組的數組是$arrayFather = ('1'=>array(6,7,8));

我必須使用某些控件,因此表單會將其發布到$_POST嗎?...否則無法完成,我必須使用JavaScript?

通常,在HTML表單中,可以通過具有多個具有相同名稱的字段和數組符號來創建數組。

<input name="sons[]">
<input name="sons[]">

當您提交表單$ _POST ['sons']時,它將是一個數組,可以按以下方式處理:

foreach ($_POST['sons'] as $son) {

    echo 'Son of the father is '.$son."\n";

}

您可以按照@crafter的答案創建表格。 我只想詳細介紹一下:

<input type="hidden" name="sons[]" value="albert">
<input  type="hidden" name="sons[]" value="rupert">

等等

然后為父親做類似的事情:

<input  type="hidden" name="father[1][]" value="6">
<input  type="hidden" name="father[1][]" value="7">
<input  type="hidden" name="father[1][]" value="8">

但是,如果用戶不需要查看數據,則可以准備一個包含數據的JSON對象,並將其發布到1個字段中,這對我來說似乎更容易

<input  type="hidden" name="father" value="<?= json_encode($arrayFather); ?>">
<input  type="hidden" name="sons" value="<?= json_encode($arraySons); ?>">

然后您可以從發布中獲取數據並使用json_decode對其進行解碼

$myArrayFather = json_decode($_POST['father']);
$myArraySons = json_decode($_POST['sons']);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM