web-dev-qa-db-ja.com

Codeigniter set_value()とフォーム値を入力します

私のフォームフィールドは次のようになります

    echo form_label('Quantity', 'quantity');
    echo form_input('quantity', $quantityx);

フォーム値を保持するように変更しました

    echo form_label('Quantity', 'quantity');
    echo form_input('quantity', $this->input->post('quantity'));

ユーザーが行を編集できるようにデータベースから値を入力するために、上記のコードビハインドで$ quantityxを設定しました。

検証用の値を保持し、同時にデータベースから入力する変数を設定するにはどうすればよいですか?

私はこれをよく試しました

    echo form_label('Quantity', 'quantity');
    echo form_input('quantity', set_value($quantityx));

提案をありがとう

8
user1854438

set_value('columnanme')falseを返す場合、フォーム$_POSTは実行されなかったため、データベースの例$profile->firstnameからデータを取得するように設定できます。

$firstname = set_value('firstname') == false ? $profile->firstname : set_value('firstname');
$lastname = set_value('lastname') == false ? $profile->lastname : set_value('lastname');

次のように使用します。

echo form_label('Firstname', 'fname');
echo form_input('firstname', $firstname);
echo form_label('Firstname', 'lnamey');
echo form_input('firstname', $lastname);

あなたの場合、あなたは次のことができます:

$quantity = set_value('Quantity') == false ? $quantityx : set_value('Quantity');

フォームに記入してください:

echo form_label('Quantity', 'quantity');
    echo form_input('quantity', $quantity);

$quantityxがデータベースからのデータを保持していると仮定

[〜#〜]編集[〜#〜]
========================================= ====

set_values()2番目のパラメーターをデフォルト値として使用するだけです。つまり、set_value('name_of_input_field',$data_from_databse_as_default);これが機能しない場合は、最初の答えを使用してください。

8
tomexsans

以下の値を入力するためのコードは私のために働いた。

form_input('cat_name','{YOUR VALUE}',array('id' => 'cat_name', ''placeHolder'' => 'Enter Cat Name')); 
3
Captain Sparrow

このコードを試して、データベースから値を検証およびフェッチしながら、テキストフィールドに値を設定できます。

form_input(array('id' => 'cat_name', 'name' => 'cat_name','value'=>set_value('cat_name',$cat_name))); 
0
Devendra Kumar

入力には3つの基本的なタイプがあります。それぞれを再作成する方法は次のとおりです。

テキスト入力

$quantity = getValueFromDb();
echo form_input(
    ['name' => 'textInput',],
    set_value('textInput', $quantity, false)
);

set_valueの3番目のパラメーターとしてfalseを使用して、form_inputによっても行われる二重のhtmlエスケープを回避します。

ドロップダウン

$quantity = getValueFromDb();
$quantities = getQuantitiesList();
echo form_dropdown(
    [ 'name' => 'formDropdown'],
    [''=>'-- Select Quantity --'] + $quantities,
    set_value('formDropdown', $quantity, false)
);  

ラジオボタン

$quantity = getValueFromDb();
echo form_radio(
    ['name'=>'formRadio'],
    5,
    set_radio('formRadio', 5, $quantity === 5)
), 5;
echo form_radio(
    ['name'=>'formRadio'],
    10,
    set_radio('formRadio', 10, $quantity === 10)
), 10;

無線入力の場合、リテラルを置き換えるためにループを使用します。

チェックボックス

チェックボックスは、form_radioform_checkboxに、set_radioset_checkboxに置き換えることで同様の方法で作成できます。

$values = [ 5 => 'Five', 10 => 'Ten', 15 => 'Fifteen',];
$selectedValues = [5, 15];
foreach ($values as $value => $label) {
    echo form_checkbox(
        ['name' => 'formCheckbox[]'],
        $value,
        set_checkbox(
            'formCheckbox[]', 
            $value,
            in_array($value, $selectedValues, true)
        )
    ), $label;
}
0
Tushar Sharma