0

我是 PHP-Codeignitor 的初学者。所以我不知道这个问题对你们来说太浪费了。

但是有什么简单的方法来验证表单数据吗?

例如,我有一个表格,它包含一个文本字段“用户名”,还有一个插入按钮,当用户单击插入时,它将添加另一个文本字段。

那么我怎样才能得到 php 中的值呢?因为用户可以在那里添加任意数量的字段。

$用户名 = $_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 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(); ?>

网址:<your_base_url_here>/index.php/test 检查一下:D

注意numericis_numeric规则都需要输入,这意味着空字符串不是数字。

于 2012-06-07T16:46:47.320 回答