12

編集フォームに複数の選択入力があります:-

<?php echo $this->Form->input('Article.tags', array('type' => 'select', 'multiple' => true, 'options' => $tags, 'selected' => array($selected))); ?>

エコーされた場合、$selected変数は次のようになります。-

"MySQL", "PHP"

ただし、入力によってタグに一致するオプションが自動的に選択されることはありません。

ただし、選択したオプションを手動で入力すると、その2つのオプションが自動的に選択されます。例えば

<?php echo $this->Form->input('Article.tags', array('type' => 'select', 'multiple' => true, 'options' => $tags, 'selected' => array("MySQL", "PHP"))); ?>

これを修正する方法はありますか?ありがとう。

4

5 に答える 5

16

ああ、私はこれを修正しました。

私は間違った方向を見ていました。選択した値は、引用符とカンマで区切った文字列形式である必要があると想定しました。(例:「MySQL」、「PHP」、「jQuery」)。

代わりに、引用符とコンマを含まない配列形式にする必要があります。例えば

Array
(
    [0] => MySQL
    [1] => PHP
    [2] => jQuery
)

配列を整理したら、それをビューに渡します。例:$ this-> set('selected'、$ myArray);

次に、フォーム上で、次のようにエコーする必要があります。-

<?php echo $this->Form->input('Article.tags', array('type' => 'select', 'multiple' => true, 'options' => $tags, 'selected' => $selected)); ?>
于 2012-04-21T02:11:29.637 に答える
4

デフォルトのキーワードを使用します。

<?php echo $this->Form->input('Article.tags',array('options'=>$tags,'type'=>'select','label'=>'TDSP','class'=>'distributeSelect','multiple'=> 'true','default' => $selected));?>
于 2013-08-07T06:51:00.453 に答える
2

CakePHP 3.xバージョンでは、リストから事前選択するように設定できvalueます

echo $this->Form->select(
    'Article.tags',
    ['PHP','MySQL','jQuery','AJAX'],
    [
        'multiple' => true,
        'value' => ['MySQL','AJAX']
    ]
);

MySQL値を持つHTML要素はAJAX、事前に選択されたものとしてレンダリングされます

于 2017-10-23T04:32:52.933 に答える
1

選択した属性を実行する必要はありません

例:

コントローラー内:

$this->request->data = $this->Article->read(null, $id);

$this->set(array(
        'centers' => $this->Center->find('list'),
        'shopCategories' => $this->ShopCategory->find('list'),
        'brands' => $this->Brand->find('list')
    ));

ビューで:

echo $this->Form->input('Center', array('multiple' => 'multiple')); 

それで全部です!

于 2013-12-27T14:30:00.157 に答える
0

ケーキphpは完全に命名規則と配列フォーマットに基づいています。

このようにしてみてください:-

<?php echo $this->Form->input('Article.tags',array('options'=>$tags,'type'=>'select','label'=>'TDSP','class'=>'distributeSelect','multiple'=> 'true','selected' => $selected));?>
于 2012-04-20T09:36:01.577 に答える