Php Codeigniter form_下拉错误
我正在制作一个网站,我有一个注册客户的功能,我需要在下拉列表中放置一个从数据库中选择的选项,然后它被发送到用户表,我得到2个erros atm,我找不到解决方案 这是我的模型:Php Codeigniter form_下拉错误,php,html,codeigniter,drop-down-menu,compiler-errors,Php,Html,Codeigniter,Drop Down Menu,Compiler Errors,我正在制作一个网站,我有一个注册客户的功能,我需要在下拉列表中放置一个从数据库中选择的选项,然后它被发送到用户表,我得到2个erros atm,我找不到解决方案 这是我的模型: class Home extends CI_Model{ //SQL function get_prodTYPE(){ $this->db->select()->from('producttype')->where('active',1); $query
class Home extends CI_Model{
//SQL
function get_prodTYPE(){
$this->db->select()->from('producttype')->where('active',1);
$query=$this->db->get();
return $query->result_array();
}
function get_COUNTRY(){
$this->db->select()->from('pais');
$this->db->order_by("id_pais", "asc");
$result = $this->db->get('pais');
$resultado = array();
if($result->num_rows() > 0){
$resultado[''] = 'please select';
foreach($result->result_array() as $row){
$resultado[$row['id_pais']] = $row['Pais'];
}
}
return $resultado;
}
然后我有一个大文件,这是注册的主要部分
这是我的控制器:
function register(){
if(!$this->session->userdata('userID')){
$data['prodTYPE']=$this->home->get_prodTYPE();
$data['info']=$this->home->get_info();
$data['country']=$this->home->get_COUNTRY();
//validacao
$config=array(
array(
'field'=>'username',
'label'=>'Username',
'rules'=>'trim|required|is_unique[users.username]|callback_min_lenght_3'
),
array(
'field'=>'password',
'label'=>'Password',
'rules'=>'trim|required|callback_min_lenght_6'
),
array(
'field'=>'password2',
'label'=>'Password de Confirmação',
'rules'=>'trim|required|matches[password]'
),
array(
'field'=>'email',
'label'=>'Email',
'rules'=>'trim|required|is_unique[users.email]|valid_email'
),
array(
'field'=>'name',
'label'=>'Nome',
'rules'=>'trim|required|callback_username_check|callback_min_lenght_3'
),
array(
'field'=>'contact',
'label'=>'Contacto',
'rules'=>'trim|required|numeric|callback_min_lenght_9'
),
array(
'field'=>'address',
'label'=>'Morada',
'rules'=>'trim|required|callback_adress_check|callback_min_lenght_9'
),
array(
'field'=>'postalCODE',
'label'=>'Codigo Postal',
'rules'=>'trim|required|numeric]|callback_min_lenght_4'
),
array(
'field'=>'postalCODE2',
'label'=>'Codigo Postal',
'rules'=>'trim|required|numeric|callback_min_lenght_3'
),
array(
'field'=>'city',
'label'=>'Localidade',
'rules'=>'trim|required|callback_min_lenght_3|callback_city_check'
),
array(
'field'=>'taxpayerNUMBER',
'label'=>'N.º Contribuinte',
'rules'=>'trim|required|numeric|callback_min_lenght_9'
),
);
$this->form_validation->set_rules($config);
if($this->form_validation->run() == FALSE){//erro
$data['errors']=validation_errors();
} else {//registo
$data=array(
'username'=>$_POST['username'],
'userTYPE'=>'user',
'password'=>sha1($_POST['password']),
'email'=>$_POST['email'],
'active'=>$_POST['newsletter']==null?0:1,
'name'=>$_POST['name'],
'contact'=>$_POST['contact'],
'country'=>$_POST['country'],
'address'=>$_POST['address'],
'postalCODE'=>$_POST['postalCODE'],
'postalCODE2'=>$_POST['postalCODE2'],
'city'=>$_POST['city'],
'taxpayerNUMBER'=>$_POST['taxpayerNUMBER']
);
$userid = $this->user->create_user($data);
$data_init=array(
'userID'=>$userid['userID'],
'situation'=>0
);
$this->user->init_shop($data_init);//comecar encomendas
$this->session->set_userdata('userID',$userid['userID']);
$this->session->set_userdata('userTYPE',$userid['userTYPE']);//userTYPE
$this->session->set_userdata('userNAME',$userid['username']);
$this->session->set_userdata('newsletter',$_POST['newsletter']==null?0:1);
redirect(base_url().'/index.php/emails/email_to/'.$userid['userID']);
}
$data['page']="#fragment-3";
$this->load->view('header',$data);
$this->load->view('login',$data);
$this->load->view('footer');
} else {
redirect(base_url().'/index.php/');
}
}
最后,我认为:
<div id="fragment-3">
<?php echo form_open(base_url().'index.php/users/register'); ?>
<div id="user_r"><?=form_label('Username','username')?><?php
$data_form=array(
'id'=>'username',
'name'=>'username',
'size'=>50,
'maxlength'=>'20',
'placeholder'=>'username',
);
?></div><div id="user_r_b"><?php echo form_input($data_form)?></div>
<div id="mail_r"><?=form_label('Email','email')?><?php
$data_form=array(
'id'=>'email',
'name'=>'email',
'size'=>50,
'maxlength'=>'40',
'placeholder'=>'email válido',
);
?></div><div id="mail_r_b"><?php echo form_input($data_form)?></div>
<div id="news_u"><?=form_label('Newsletter','newsletter')?><?php
$data_form=array(
'name'=>'newsletter',
'id'=>'newsletter',
'checked'=>TRUE,
'value'=>1,
'style'=>'margin:10px',
);
?></div>
<div id="news_u_b"><?php echo form_checkbox($data_form)?></div>
<div id="pass_1"><?=form_label('Password','password')?><?php
$data_form=array(
'name'=>'password',
'id'=>'password',
'size'=>50,
'maxlength'=>'20',
'placeholder'=>'minimo 6 caracteres',
);
?></div>
<div id="pass_1_b"><?php echo form_password($data_form)?></div>
<div id="pass_2"><?=form_label('Confirmar Pass','password2')?><?php
$data_form=array(
'name'=>'password2',
'id'=>'password2',
'size'=>50,
'maxlength'=>'20',
'placeholder'=>'minimo 6 caracteres',
);
?></div>
<div id="pass_2_b"><?php echo form_password($data_form)?></div>
<div id="name_r"><?=form_label('Nome','name')?><?php
$data_form=array(
'id'=>'name',
'name'=>'name',
'size'=>50,
'maxlength'=>'50',
'placeholder'=>'nome facturação',
);
?></div>
<div id="name_r_b"><?php echo form_input($data_form)?></div>
<div id="contact1"><?=form_label('Contacto','contact')?><?php
$data_form=array(
'id'=>'contact',
'name'=>'contact',
'size'=>24,
'maxlength'=>'9',
'placeholder'=>'n.º movel ou fixo',
'style'=>"padding-bottom : 0px;font-size:13px;"
);
?>
</div>
<div id="contact_b"><?php echo form_input($data_form)?></div>
<div id="pais"><?=form_label('Pais','country');?></div>
<div id="pais_b"><?php echo form_dropdown('country', $country); ?></div>
<div id="adres"><?=form_label('Morada','address')?><?php
$data_form=array(
'id'=>'address',
'name'=>'address',
'size'=>50,
'maxlength'=>'50',
'placeholder'=>'morada de facturação',
);
?></div><div id="adres_b"><?php echo form_input($data_form)?></div>
<div id="code"><?=form_label('Codigo Postal','postalCODE')?><?php
$data_form=array(
'id'=>'postalCODE',
'name'=>'postalCODE',
'size'=>6,
'maxlength'=>'6',
'placeholder'=>'1111',
);
?></div>
<div id="code1"><?php echo form_input($data_form)?> /</div>
<div id="code22"><?=form_label('','postalCODE2')?><?php
$data_form=array(
'id'=>'postalCODE2',
'name'=>'postalCODE2',
'size'=>5,
'maxlength'=>'5',
'placeholder'=>'111',
);
?></div><div id="code2"><?php echo form_input($data_form)?></div>
<div id="city2"><?=form_label('Localidade','city')?> <?php
$data_form=array(
'id'=>'city',
'name'=>'city',
'size'=>24,
'maxlength'=>'30',
'style'=>"padding-bottom : 0px;font-size:13px;",
'placeholder'=>'localidade facturação',
);
?></div><div id="city_b"><?php echo form_input($data_form)?></div>
<div id="number"><?=form_label('N.º Contribuinte','taxpayerNUMBER')?><?php
$data_form=array(
'id'=>'taxpayerNUMBER',
'name'=>'taxpayerNUMBER',
'size'=>24,
'maxlength'=>'9',
'placeholder'=>'numero contribuinte valido',
);
?></div><div id="number_b"><?php echo form_input($data_form)?></div>
<div id="botao"><?php echo form_submit('',' Registar '); ?></div>
<?php echo form_close(); ?>
</div>
希望有人能帮助我
谢谢:)您的问题很简单,在这部分代码中:
} else {//registo
$data=array(
'username'=>$_POST['username'],
您正在将$data
重置为新阵列。对于简单的解决方案,请使用array_merge():
您正试图在视图文件中使用未定义的变量“$data”(显然比您发布的要长,因为它位于第141行)。这可能是一个好的开始。猜测一下,您正试图引用$data,因为这是控制器中设置的。但是在视图中,数据数组的键是作为变量可用的,例如:控制器中的$data['prodTYPE']在视图中变为$prodTYPE我更改了错误消息,行号是正确的,您所说的我已经做了,但仍然不起作用。您的视图文件在这里只显示了2行。第143行报告了错误。您没有告诉我们的form_helper中引用了哪个函数。我已经添加了您所说的行,很抱歉,行$data['country]=$this->home->get_country()之后没有足够的信息;添加:print_r($data['country']);模具();输出是什么?感谢您的回答,但它仍然会给我相同的错误消息(ainda não functiona),在加载任何视图之前,添加
var_dump($data['country');退出代码>如果有任何价值在那里,你做我的解决方案错误。如果已定义,则错误不能相同。
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: country
Filename: views/login.php
Line Number: 143
A PHP Error was encountered
Severity: Warning
Message: Invalid argument supplied for foreach()
Filename: helpers/form_helper.php
Line Number: 331
} else {//registo
$data=array(
'username'=>$_POST['username'],
} else {//registo
$additional_data=array(
'username'=>$_POST['username'],
'userTYPE'=>'user',
'password'=>sha1($_POST['password']),
'email'=>$_POST['email'],
'active'=>$_POST['newsletter']==null?0:1,
'name'=>$_POST['name'],
'contact'=>$_POST['contact'],
'country'=>$_POST['country'],
'address'=>$_POST['address'],
'postalCODE'=>$_POST['postalCODE'],
'postalCODE2'=>$_POST['postalCODE2'],
'city'=>$_POST['city'],
'taxpayerNUMBER'=>$_POST['taxpayerNUMBER']
);
array_merge($data, $additional_data);