<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## addLinkage('name值', '標題', '提示', '選項', '默認值', '異步請求地址' [, '后代name值', '請求參數名', '額外表單項值']) 標識符:`linkage` | 版本 | 功能 | | --- | --- | | 1.3.3 | 支持發送額外表單項值 | | 參數 | 含義 | 類型 | | --- | --- | --- | | name | name值 | string | | title | 標題 | string | | tips | 提示 | string | | options | 選項 | array | | default | 默認值 | string | | ajax_url | 異步請求地址 | string | | next_items | 后代name值 | string | | param | 請求參數名 | string | | extra_param| 額外表單項值(1.3.3+) | string | ### 先來個栗子感受一下 比如做個省份城市聯動,這里最后一級是城市,沒有地區。 ~~~ $list_province = ['gd' => '廣東', 'gx' => '廣西']; return ZBuilder::make('form') ->addLinkage('province', '選擇省份', '', $list_province, '', url('get_city'), 'city') ->addSelect('city', '選擇城市') ->fetch(); ~~~ 效果: ![](https://box.kancloud.cn/6cddb07cc9181d0a8c51427c5ed401e8_1201x171.png) 下面,來講解一下如何使用。 ### 選項 比如上面的省份,“選項”是一個一維數組,和之前單選、復選等類型一樣。 ### 異步請求地址 是指選擇下拉之后,去請求下級數據的地址,可以使用url函數生成或者直接寫有效的url地址。 >[info] 返回的數據格式是json格式,并且里至少面要包含“code”、“msg”、“list”,其中,“code”表示狀態,1表示獲取成功,0表示獲取失敗。“msg”是提示信息,“list”是返回的列表數據。 一個典型的數據返回例子(這個例子只是簡單的演示,無論傳什么值過來,都返回相同的json數據) ~~~ // 根據省份獲取城市 public function get_city($province = '') { $arr['code'] = '1'; //判斷狀態 $arr['msg'] = '請求成功'; //回傳信息 $arr['list'] = [ ['key' => 'gz', 'value' => '廣州'], ['key' => 'sz', 'value' => '深圳'], ]; //數據 return json($arr); } ~~~ >[info]“list”數組中,每一個數組元素需包含兩個鍵,“key”和“value”,也可以借助format_linkage()方法將普通的一維數組轉換為符合普通聯動的數據結構。 ### 后代name值 指子級下拉菜單的name值,比如上面的例子,省份的name值是“province”,城市的name值是`city`,那么需要給省份下拉菜單指定下級的name值,即`city`。 ~~~ $list_province = ['gd' => '廣東', 'gx' => '廣西']; return ZBuilder::make('form') ->addLinkage('province', '選擇省份', '', $list_province, '', url('get_city'), 'city') ->fetch(); ~~~ 如果是三級聯動,那么“后代name值”就必須把所有子代下拉菜單的name值都寫進去,并且以英文逗號隔開,比如加多一個地區: ~~~ $list_province = ['gd' => '廣東', 'gx' => '廣西']; return ZBuilder::make('form') ->addLinkage('province', '選擇省份', '', $list_province, '', url('get_city'), 'city,area') ->addLinkage('city', '選擇城市', '', '', '', url('get_area'), 'area') ->addSelect('area', '選擇地區') ->fetch(); ~~~ 我們可以看到,選擇省份中寫的是“city,area”,而選擇城市寫的是“area”,選擇地區則沒有。 細心的朋友可能已經看出在第一個例子中,“選擇城市”使用的是`addSelect`方法,而在這里使用的是`addLinkage`方法,最后一項“選擇地區”用`addSelect`方法。 是的,最后一項是不用去獲取數據的,所以我們可以用簡單的`addSelect`方法即可,最終效果如下: ![](https://box.kancloud.cn/c1314a94daad09a53831cc29e0ddcbbf_1182x314.png) ### 請求參數名 默認情況下,選擇下拉菜單后,去獲取數據時會帶上選中的數值,比如選擇“廣東”,就會給`get_city`方法傳一個參數名為“province”,值為“gd”的參數。那么我們就可以在`get_city($province = '')`接收到這個參數,并查詢數據庫。 在沒有修改的情況下,參數名是該下拉菜單的name值,如果有需要,可以修改為其他,比如: ~~~ $list_province = ['gd' => '廣東', 'gx' => '廣西']; return ZBuilder::make('form') ->addLinkage('province', '選擇省份', '', $list_province, '', url('get_city'), 'city,area', 'sf') ->addLinkage('city', '選擇城市', '', '', '', url('get_area'), 'area') ->addSelect('area', '選擇地區') ->fetch(); ~~~ 那么`get_city`方法就不能用`province`來接收參數值,而是用`sf`,如:`get_city($sf = '')`,當然,使用`$this->request->post('sf')`也是可以獲取到的。 ### 額外表單項值(1.3.3+) 以上面的代碼為例子,默認情況下,當我們選擇城市時,會將城市的值發送給服務器,以獲取地區列表。但有時候,我們希望能同時發送表單上的其他表單項值,那么就需要配置`extra_param`參數。 ~~~ $list_province = ['gd' => '廣東', 'gx' => '廣西']; return ZBuilder::make('form') ->addLinkage('province', '選擇省份', '', $list_province, '', url('get_city'), 'city,area', 'sf') ->addLinkage('city', '選擇城市', '', '', '', url('get_area'), 'area', '', 'province') ->addSelect('area', '選擇地區') ->fetch(); ~~~ 上面再添加選擇城市中,最后一個參數設置為了`province`,那么在選擇城市的時候,不僅會將城市代碼發送到服務器,同時還會將當前選中的省份代碼也發送到服務器。 如果需要發送表單的其他表單項,可以填寫多個,以逗號隔開。 ### 演示例子 ~~~ class Index extends Admin { public function add() { // 使用ZBuilder構建表單頁面,并將頁面標題設置為“添加” $list_province = ['gd' => '廣東', 'gx' => '廣西']; return ZBuilder::make('form') ->addLinkage('province', '選擇省份', '', $list_province, '', url('get_city'), 'city,area') ->addLinkage('city', '選擇城市', '', '', '', url('get_area'), 'area') ->addSelect('area', '選擇地區') ->fetch(); } // 根據省份獲取城市 public function get_city($province = '') { $arr['code'] = '1'; //判斷狀態 $arr['msg'] = '請求成功'; //回傳信息 $arr['list'] = [ ['key' => 'gz', 'value' => '廣州'], ['key' => 'sz', 'value' => '深圳'], ]; //數據 return json($arr); } // 根據城市獲取地區 public function get_area($city = '') { $arr['code'] = '1'; //判斷狀態 $arr['msg'] = '請求成功'; //回傳信息 $arr['list'] = [ ['key' => 'th', 'value' => '天河'], ['key' => 'by', 'value' => '白云'], ]; //數據 return json($arr); } } ~~~ ### 編輯頁面 在編輯頁面,普通聯動的列表需要先查詢出來,再賦值給各個下拉框,這樣才能顯示對應的值。 ~~~ class Index extends Admin { public function edit($id) { // 獲取編輯數據 $info = Db::name('...')->find(); // 查詢省份列表,一般是去數據庫查詢,這里用固定數組代替 $list_province = ['gd' => '廣東', 'gx' => '廣西']; // 這里需要根據已經選擇的省份,查詢數據庫獲取城市列表 $list_city = Db::name('city')->where('province', $info['province'])->column('id,name'); // 這里需要根據已經選擇的城市,查詢數據庫獲取地區列表 $list_area = Db::name('area')->where('city', $info['city'])->column('id,name'); return ZBuilder::make('form') ->addLinkage('province', '選擇省份', '', $list_province, '', url('get_city'), 'city,area') ->addLinkage('city', '選擇城市', '', $list_city , '', url('get_area'), 'area') ->addSelect('area', '選擇地區', '', $list_area) ->setFormData($info) ->fetch(); } } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看