4

こんにちはフォームヘルパーを使用して選択ボックスに無効なオプションを追加しようとしています。このコードを使用して余分な空のフィールドを生成しますが、このフィールドを無効にします。

echo $this->Form->input('User.usertype_id',array('type'=>'select', 'empty'=>'usertype');

これにより、以下が生成されます。

<div class="input select">
    <label for="UserUsertypeId">Usertype</label>
    <select name="data[User][usertype_id]" id="UserUsertypeId">
        <option value="">usertype</option>
        <option value="1">athlete</option>
        <option value="2">trainer</option>
    </select>
</div>

しかし、私はこれが欲しい:

<div class="input select">
    <label for="UserUsertypeId">Usertype</label>
    <select name="data[User][usertype_id]" id="UserUsertypeId">
        <option value="" disabled="disabled" selected="selected">usertype</option>
        <option value="1">athlete</option>
        <option value="2">trainer</option>
    </select>
</div>

これを簡単に行う方法はありますか、それともjsを使用する必要がありますか?

4

6 に答える 6

10

オプションが事前にわかっている場合$optionsは、選択メニューで使用する配列を作成できます。これにより、必要なものが正確に得られるはずです。

$options = array(
            array(
                'name' => 'usertype',
                'value' => '',
                'disabled' => TRUE,
                'selected' => TRUE
            ),
            'athlete',
            'trainer'
            );

echo $this->Form->input('User.usertype_id', array('type' => 'select', 'options' => $options));

または、これはうまくいくかもしれませんが、私はそれをテストしていません:

echo $this->Form->input('User.usertype_id', array('type' => 'select', 'empty'=> array('text' => 'usertype', 'selected' => TRUE, '無効' => FALSE)));

于 2010-11-04T17:31:51.370 に答える
1

mhmmは、コメントにいくつかのコードブロックを追加できないようです。そのため、両方のオプションが生成されます。

<select name="data[User][usertype_id]" id="UserUsertypeId">
  <option value="text">usertype</option>
  <option value="selected">1</option>
  <option value="disabled"></option>
  <option value="1">athlete</option>
  <option value="2">trainer</option>
</select>

だからこれはうまくいきませんでしたが、私はこのようにしました:

echo $this->Form->input('User.usertype_id', array('type' => 'select', 'empty'=> array('text" disabled="disabled" selected="selected' => '')));

これにより、値が( "disabled =" disable "selected =" selected)のオプションが生成されるため、次のようになります。

...
<option value="" disabled="disabled" selected="selected"></option>
...

これは一時的な解決策です。もっと良いものが見つかるまで、提案を歓迎します。

于 2010-11-04T22:05:33.673 に答える
0

Weptunus と stevelove のソリューションをマージします。

コントローラーで:

$examples = $this->Test->Examples->find('list');
$this->set('examples', $examples);

ビューで

echo $this->Form->input('example_id', array('empty' => array(
        '' => array(
            'name' => __('Select an Example'),
            'value' => '',
            'disabled' => TRUE,
            'selected' => TRUE
        )
    ))
);
于 2016-02-04T18:02:08.877 に答える
0

私はケーキ1.3でこの成功を見つけました

<?php echo $this->Form->input('example', array('type' => 'select','id' => 'id','options' => array('empty "disabled="disabled" selected="selected"' => 'name empty', 'val1' => 'text1', 'val2' => 'text2')); ?>
于 2021-07-24T16:31:51.580 に答える