0

私はPHP-Codeignitorの初心者です。だから、この質問があなたにとって無駄すぎるとは思いません。

しかし、フォームデータを検証する簡単な方法はありますか?

Ex.テーブルがあり、テキスト フィールド「ユーザー名」が含まれています。挿入ボタンもあり、ユーザーが挿入をクリックすると、別のテキスト フィールドが追加されます。

では、どうすれば php で値を取得できますか? ユーザーはそこに任意の数のフィールドを追加できるためです。

$username = $_POST("ユーザー名"); // この場合、何を取得するのでしょうか? 配列 ?

また、このような状況をどのように処理できますか。

ありがとうございました。

4

2 に答える 2

3

フォームに配列を設定すると、$_POST に配列が取得されます。

フォーム フィールド:

<input type='text' name='username[]' />
<input type='text' name='username[]' />

php:

$users_array = $_POST['username'];
于 2012-06-07T11:02:49.320 に答える
1

ユーザーが多数のフィールドを追加する場合は、HTML 配列 inputを使用して追加できるようにする必要があります。何かのようなもの:

<input name="my_array[]" />

HTML 配列入力でのform_validationの使用法は次のとおりです。

  1. 入力配列を取得して、そこにあるフィールドの数を決定します
  2. フィールドごとにルールを設定

簡単ですか?:) これが私のデモコードです:

コントローラ:application/controllers/test.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

/**
* Test Controller
*
* It's really just a test controller
*
*/
class Test extends CI_Controller {

    public function __construct()
    {
        parent::__construct();
    }

    public function index()
    {
        $data = array();
        if ($this->input->post('test_submit'))
        {
            $this->load->library('form_validation');
            $input_array = $this->input->post('test');

            for ($i = 0; $i < count($input_array); $i++)
            {
                $this->form_validation->set_rules("test[$i]", 'Test Field '.($i + 1), 'trim|is_numeric|xss_clean');
            }

            if ($this->form_validation->run() === TRUE)
            {
                $data['message'] = 'All input are number! Great!';
            }
        }
        $this->load->helper('form');
        $this->load->view('test', $data);
    }

}

/* End of file test.php */
/* Location: ./application/controllers/test.php */

意見:application/views/test.php

<p><?php echo isset($message) ? $message : ''; ?></p>
<?php echo validation_errors(); ?>
<?php echo form_open(); ?>
    <?php echo form_label('Test fields (numeric)', 'test[]'); ?>
    <?php for ($i = 0; $i < 3; $i++): ?>
        <?php echo form_input('test[]', set_value("test[$i]")); ?>
    <?php endfor; ?>
    <?php echo form_submit('test_submit', 'Submit'); ?>
<?php echo form_close(); ?>

URL:<your_base_url_here>/index.php/test チェックしてみてください :D

:numericis_numericルールはどちらも入力が必要です。つまり、空の文字列は数値ではありません。

于 2012-06-07T16:46:47.320 に答える