マニュアルによると:
<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 を使用)。