Php CodeIgniter HTML 5输入类型问题
我是编程的初学者,尤其是使用CodeIgniter框架。我有个问题,也许你们能帮我 这是密码Php CodeIgniter HTML 5输入类型问题,php,html,forms,codeigniter,Php,Html,Forms,Codeigniter,我是编程的初学者,尤其是使用CodeIgniter框架。我有个问题,也许你们能帮我 这是密码 <div class="form-group"> <?php echo form_label('Email', 'email'); echo form_input('email', '', [ 'type' => 'email', 'id' => 'email',
<div class="form-group">
<?php
echo form_label('Email', 'email');
echo form_input('email', '', [
'type' => 'email',
'id' => 'email',
'class' => 'form-control'
]);
?>
</div>
当我在浏览器中检查时,它显示如下
<input type="text" name="email" value="" id="email" class="form-control">
但是当我把代码改成这个的时候
<div class="form-group">
<?php
echo form_label('Email', 'email');
echo form_input([
'type' => 'email',
'name' => 'email',
'id' => 'email',
'class' => 'form-control'
]);
?>
</div>
inspect元素显示
<input type="email" name="email" value="" id="email" class="form-control">
我想知道,为什么我不能在我的第一个代码中使用
?
任何解释都会对我有所帮助,谢谢。我认为这是CodeIgniter框架的表单输入行为 对于方法形式输入(a、b、c)或形式输入(a、b),c是额外的参数对象,是可选的。 它们只能为您创建一个文本字段,无论在外部参数中指定何种类型 但是,正如您所提到的,您仍然可以通过应用重载的form_输入来创建type=email输入,即form_输入(extraParameters) 我认为这两个在CodeIgniter中不是相同的实现,而接受数组的实现是主函数,因此它为您提供了更多的可行性 例如,您可以使用第二个代码创建第一个代码的相同输出。但你不能反过来做
<div class="form-group">
<?php
echo form_label('Email', 'email');
echo form_input([
'type' => 'text',
'name' => 'email',
'value' => '',
'id' => 'email',
'class' => 'form-control'
]);
?>
</div>
对于第一个示例,通过输入所有参数作为值,它将默认为文本输入,假设第一个参数为名称,第二个参数为值,第三个参数为额外信息
对于第二个示例,您在数组中很好地定义了它们,以生成所需的结果。当您查看
form\u helper
时,下面的文件是form\u input
的函数。在这里,您可以看到,当您默认情况下未传递数组数据时,它会使用$defaults
数组,因此您不会在第一个代码中键入电子邮件。查看以下表单输入的代码
如果(!function_存在('form_input'))
{
/**
*文本输入字段
*
*@param混合
*@param字符串
*@param混合
*@返回字符串
*/
函数形式_输入($data='',$value='',$extra='')
{
$defaults=数组(
'类型'=>'文本',
'name'=>是_数组($data)?'':$data,
“值”=>$value
);
return'我通过在system>helpers下编辑form_helper.php并添加一个名为form_input_email()的新函数解决了这个问题,如下所示
if ( ! function_exists('form_input_email'))
{
/**
* Email Input Field
*
* @param mixed
* @param string
* @param mixed
* @return string
*/
function form_input_email($data = '', $value = '', $extra = '')
{
$defaults = array(
'type' => 'email',
'name' => is_array($data) ? '' : $data,
'value' => $value
);
return '<input '._parse_form_attributes($data, $defaults)._attributes_to_string($extra)." />\n";
}
}
如果(!function_存在('form_input_email'))
{
/**
*电子邮件输入字段
*
*@param混合
*@param字符串
*@param混合
*@返回字符串
*/
函数形式\u输入\u电子邮件($data='',$value='',$extra='')
{
$defaults=数组(
'键入'=>'电子邮件',
'name'=>是_数组($data)?'':$data,
“值”=>$value
);
return“谢谢你,伙计,非常有帮助,让我了解表单输入是如何工作的。
if ( ! function_exists('form_input_email'))
{
/**
* Email Input Field
*
* @param mixed
* @param string
* @param mixed
* @return string
*/
function form_input_email($data = '', $value = '', $extra = '')
{
$defaults = array(
'type' => 'email',
'name' => is_array($data) ? '' : $data,
'value' => $value
);
return '<input '._parse_form_attributes($data, $defaults)._attributes_to_string($extra)." />\n";
}
}