2009-05-26 12 views
6

からフォームを埋める、私は...ビューでCodeIgniterのコントローラでデータベース

function update($id = null) 
{ 
    $this->load->database(); 

    // more code 

    $data = array(); 
    $data = $this->db->get_where(
      'users', 
      array(
      'id' => $id 
      ) 
     ); 
    $data = $data->result_array(); 
    $data = $data[0]; 

    // more code 

    $this->load->view('update', $data); 
} 

を持って、私が持っている...

<h5>Username</h5> 
<input type="text" name="username" value="<?php echo set_value('username'); ?>" size="50" /> 

<h5>Email</h5> 
<input type="text" name="email" value="<?php echo set_value('email'); ?>" size="50" /> 

<h5>Email Confirmation</h5> 
<input type="text" name="emailconf" value="<?php echo set_value('emailconf'); ?>" size="50" /> 

<h5>Password</h5> 
<input type="text" name="password" value="<?php echo set_value('password'); ?>" size="50" /> 

<h5>Password Confirmation</h5> 
<input type="text" name="passconf" value="<?php echo set_value('passconf'); ?>" size="50" /> 

はSET_VALUEは、()$のデータを読み込んでいない

値を検索= "" http://codeigniter.com/forums/viewthread/103837/

ポスターはvalue = ""の ""の間でset_value()関数のみを使用します。

私は同じことをする方法が不思議ですが、私はそれを動作させることはできません。助けて?

+1

なぜモデルではなくコントローラでデータを取得していますか? – eyelidlessness

+3

彼(私たち)がすることができますし、したいので。 ;) –

+0

nice one @StephenCox –

答えて

4

あなたは値をビューに正しく渡していないと思います。コントローラーで

は入れ:

$data = $this->db->get_where(
     'users', 
     array(
     'id' => $id 
     ) 
    ); 
$data = $data->result_array(); 

$data['result'] = $data[0]; 

を、ビュー内:[

$data = array(); 
$data = $this->db->get_where(
     'users', 
     array(
     'id' => $id 
     ) 
    ); 
$data = $data->result_array(); 
$data['view_username'] = $data['username']; 

代わりの$日付を使用して:

コントローラー:

<h5>Password Confirmation</h5> <input type="text" name="passconf" value="<?php echo $result['passconf']; ?>" size="50" /> 
3

はこれを試してみてください0]、私は列名を使用して、

<h5>Username</h5> <input type="text" name="username" value="<?=$view_username?>" size="50"/> 

<?= =>

よろしく、

CodeIgniterユーザガイド日本語版でそれについて読んで、Sylvio

PHPの短いタグである
21

SET_VALUEは、2つのパラメータが必要ですが、それはあなたの決定

ビューの。フィールド名AND値。

あなたが必要です:

value="<?php echo set_value('username', $username); ?>" 

は、あなたが()など[ 'ユーザ名']

+1

これは正解です。データベースからフォームをあらかじめ読み込み、フォーム検証ユーザー入力を入力する場合があります – Stewie

+1

正しいことですが、ここで示唆しているようにSystem/helpers/set_valueコードを置き換えるともう1つの時間を節約できます。 codeigniter.com/forums/viewthread/159535/#775628ルールが存在しないときに再びフォームを再作成するときの問題を避けるためです。 – Saad

1

SET_VALUEを$データを渡しているCIフォーム検証で動作するように設計されていると仮定します。

フォームが最初に読み込まれるとき、set_value()は2番目のパラメータを使用してフィールドにデフォルト値を設定できます。フォームが送信された後、フォームを再度表示することができます。フィールドは、検証のためにチェックされていれば、送信された値で埋められます。

も参照してください。http://codeigniter.com/forums/viewthread/96617/ - ドキュメントに明示されていないset_value()にはいくつかの問題があります。

これまでCI 1.7.3まで適用可能です。

-1

デフォルト値をコントローラー内の変数$_POSTに割り当てます。$_POST['email'] = 'email';

+0

$ _POST値は設定できません。 –

関連する問題