2
<select style="width:25%;" name='state' <?php if(form_error('state') != '') {  echo 'id=error'; } ?>>
<option value=''>State</option>
 <?php  foreach($states->result() as $row)
 {
 echo "<option value='$row->state_name'>". $row->state_name."</option>";
 }  ?>
</select>

こんにちは、私は上記のコードで問題に直面しています。助けてください。

このようなことを行います。ここでターゲットは非表示の値です。目標値をドロップダウン値(オプション値)に設定する方法

  <script>
    window.onload = function (){
    target=document.getElementById('target').value;
        if(target.length!=''){
   // document.getElementByName('state').value=target;
        }
    }
    </script>
4

7 に答える 7

12

マニュアルによると:

<select name="myselect">
        <option value="one" <?php echo  set_select('myselect', 'one', TRUE); ?> >One</option>
        <option value="two" <?php echo  set_select('myselect', 'two'); ?> >Two</option>
        <option value="three" <?php echo  set_select('myselect', 'three'); ?> >Three</option>
</select>

あなたの場合

<select style="width:25%;" name='state' <?php if(form_error('state') != '') {  echo 'id=error'; } ?>>
<option value=''>State</option>
 <?php  foreach($states->result() as $row)
 {
 echo "<option value='$row->state_name' " . set_select('state', $row->state_name) . " >". $row->state_name."</option>";
 }  ?>

</select>

[アップデート]

<select style="width:25%;" name='state' <?php if(form_error('state') != '') {  echo 'id=error'; } ?>>
    <option value=''>State</option>
     <?php  
$defaultvalue = 'Nigeria'; //Please set default value here when nothing is selected before submit - change Nigeria
foreach($states->result() as $row)
     {
     echo "<option value='$row->state_name' " . set_select('state', $row->state_name, ((!isset(set_select('state', $row->state_name)) &&  ($row->state_name == $defaultvalue) ) ? TRUE : FALSE )) . " >". $row->state_name."</option>";
     }  ?>


</select>

デフォルト値を設定したくない場合は、set_select から TRUE を削除するだけです

メニューを使用している場合、この機能を使用すると、選択したメニュー項目を表示できます。最初のパラメータには選択メニューの名前が含まれている必要があり、2 番目のパラメータには各項目の値が含まれている必要があり、3 番目 (オプション) のパラメータでは項目をデフォルトとして設定できます (ブール値の TRUE/FALSE を使用)。

于 2013-03-13T01:36:20.550 に答える
4

フォームヘルパー関数を使用すると、次のことができます。

form_dropdown('name', $options, set_value('name', 'default'))

set_value「名前」の投稿が前回送信された場合、オプションの値が選択されます。そうでない場合は、「デフォルト」値で設定されます。

于 2013-03-13T03:48:02.127 に答える
2

ポスト値を使用しないのはなぜですか?

echo form_dropdown('name', $options, $this->input->post('name'));
于 2013-05-08T15:37:39.733 に答える
1

ここでは、Codeigniter で FALSE を実行してフォームの検証を行った後に選択値を設定するためのより良い方法を示します。これがコードスニペットです。

以下は私のコントローラーです。

function index() {
    $this->load->view('welcome_message');
}

function form_validation() {
    $this->load->library('form_validation');
    $this->form_validation->set_rules('name', 'Name', 'trim|required');
    $this->form_validation->set_rules('gender', 'Gender', 'trim|callback_check_if_gender_selected');

    if ($this->form_validation->run() == FALSE) {
        $this->index();
    } else {
        $this->load->view('validation_passed');
    }
}

function check_if_gender_selected($value) {
    if ($value == "0") {
        $this->form_validation->set_message('check_if_gender_selected', 'Please Select Gender');
        return FALSE;
    } else {
        return TRUE;
    }
}

私の見解

  1. フォーム ビュー - (注: コードを貼り付けようとしましたが、貼り付けに問題がありました。コードの画像を証明しています。コードを詳しく表示するには、[画像] をクリックしてください。)

フォーム ビュー コード

検証合格ビュー

Welcome Validation Passed.

<?php echo "<br />" . "Name Value = " . set_value('name') . "<br />"; ?>
<?php echo "Gender Value = " . set_value('gender'); ?>
于 2016-12-07T16:07:49.280 に答える
0

ではなく、set_select()を使用する必要がありますset_value()。フォームの検証がまったく実行されていない場合を除きます。

<select style="width:25%;" name='state' <?php if(form_error('state') != '') {  echo 'id=error'; } ?>>
<option value=''>State</option>
 <?php  foreach($states->result() as $row)
 {
 echo '<option value="$row->state_name" ' . set_select('state', $row->state_name) . '>'. $row->state_name."</option>";
 }  ?>
</select>

それでも機能しない場合はお知らせください。フォーム検証が実行されないことが関係している可能性があります(id="error"表示されていない場合)。

于 2013-03-12T23:38:18.297 に答える
0
    <select style="width:25%;" name='state' <?php if(form_error('state') != '') {  echo 'id=error'; } ?>>
    <option value=''>State</option>
     <?php  foreach($states->result() as $row)
     {
     echo "<option value='$row->state_name' " . set_select('state', $row->state_name) . " >". $row->state_name."</option>";
     }  ?>

    </select>

これは私にとってはうまくいきました。答えてくれてありがとう@jornsen。

于 2013-03-14T10:14:53.917 に答える
-1
 <option value="<?= $row->state_name ?>" ><?= $row->state_name ?></option>
于 2013-03-12T17:59:24.870 に答える