我是 PHP-Codeignitor 的初学者。所以我不知道这个问题对你们来说太浪费了。
但是有什么简单的方法来验证表单数据吗?
例如,我有一个表格,它包含一个文本字段“用户名”,还有一个插入按钮,当用户单击插入时,它将添加另一个文本字段。
那么我怎样才能得到 php 中的值呢?因为用户可以在那里添加任意数量的字段。
$用户名 = $_POST("用户名"); //在这种情况下它将检索什么?大批 ?
也怎么能处理这样的情况。
谢谢你。
我是 PHP-Codeignitor 的初学者。所以我不知道这个问题对你们来说太浪费了。
但是有什么简单的方法来验证表单数据吗?
例如,我有一个表格,它包含一个文本字段“用户名”,还有一个插入按钮,当用户单击插入时,它将添加另一个文本字段。
那么我怎样才能得到 php 中的值呢?因为用户可以在那里添加任意数量的字段。
$用户名 = $_POST("用户名"); //在这种情况下它将检索什么?大批 ?
也怎么能处理这样的情况。
谢谢你。
如果你在表单中设置了一个数组,你会在 $_POST 中得到一个数组。
表单域:
<input type='text' name='username[]' />
<input type='text' name='username[]' />
php:
$users_array = $_POST['username'];
如果您的用户要添加许多字段,您应该让他们使用HTML 数组输入来完成。就像是:
<input name="my_array[]" />
这是HTML 数组输入的form_validation用法:
够简单吗?:) 这是我的演示代码:
控制器: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
注意:numeric
和is_numeric
规则都需要输入,这意味着空字符串不是数字。