[eluser]Bianca Migueis[/eluser]
is it possible to use a set_value within a form_input? how?
I've been trying but I can't make it work. Any thoughts would be appreciated however I DO know the link to the user guide.
I have the following codes
Controller
Code: public function index()
{
$data['loggedin'] = $this->cookie->checkcookie();
$data['username'] = array(
'name' => 'username',
'id' => 'username',
'value' => set_value('username'),
'maxlength' => '24',
'size' => '24',
'style' => '',
);
$data['password'] = array(
'name' => 'password',
'id' => 'password',
'value' => set_value('password'),
'maxlength' => '24',
'size' => '24',
'style' => '',
);
$data['password2'] = array(
'name' => 'password2',
'id' => 'password2',
'value' => set_value('password2'),
'maxlength' => '24',
'size' => '24',
'style' => '',
);
$data['first'] = array(
'name' => 'first',
'id' => 'first',
'value' => set_value('first'),
'maxlength' => '24',
'size' => '24',
'style' => '',
);
$data['middle'] = array(
'name' => 'middle',
'id' => 'middle',
'value' => set_value('middle'),
'maxlength' => '24',
'size' => '24',
'style' => '',
);
$data['last'] = array(
'name' => 'last',
'id' => 'last',
'value' => set_value('last'),
'maxlength' => '24',
'size' => '24',
'style' => '',
);
$data['email'] = array(
'name' => 'email',
'id' => 'email',
'value' => set_value('email'),
'maxlength' => '128',
'size' => '50',
'style' => '',
);
$data['submit'] = array(
'name' => 'register',
'id' => 'register',
'value' => 'Register',
'maxlength' => '24',
'size' => '24',
'style' => '',
);
if ($this->form_validation->run('register') == FALSE)
{
$this->load->view('register_view', $data);
}
else
{
$this->updateDB($_POST);
}
}
view
Code: <?php include "header.php" ?>
<center>
<table border="0">
<tr>
<td width="300"><h3>Register<h3></td>
</tr>
<tr>
<td>
<?=form_open('register');?>
<font color="red"><?=form_error('username');?></font>
Username: <?=form_input($username);?></br>
<font color="red"><?=form_error('password');?></font>
Password: <?=form_password($password);?></br>
<font color="red"><?=form_error('password2');?></font>
Confirm password: <?=form_password($password2);?></br>
<font color="red"><?=form_error('email');?></font>
Email: <?=form_input($email);?></br>
<font color="red"><?=form_error('first');?></font>
<font color="red"><?=form_error('middle');?></font>
<font color="red"><?=form_error('last');?></font>
Name: <?=form_input($first);?> <?=form_input($middle);?> <?=form_input($last);?></br>
<?=form_submit($submit);?></br>
</form>
</td>
</tr>
</table></center>
<?php include "footer.php" ?>
[eluser]xtremer360[/eluser]
It appears that you are calling a variable called $username for the form input in the html but you don't have it defined anywhere so I suggest you turn:
Code: $data['username'] = array(
'name' => 'username',
'id' => 'username',
'value' => set_value('username'),
'maxlength' => '24',
'size' => '24',
'style' => '',
);
into
Code: $username = array(
'name' => 'username',
'id' => 'username',
'value' => set_value('username'),
'maxlength' => '24',
'size' => '24',
'style' => '',
);
[eluser]Bianca Migueis[/eluser]
but everything else works perfectly fine with $data[username]... I checked the view source and only thing that is not set as it should is the value...
EDIT: I figured it out. nothing like a good night of sleep to give you some perspective... Apparently the set_value function needs to be run after the $this->form_validation->run() so I just transfered my array to inside the if clause. now it works perfectly with this code:
Code: public function index()
{
$data['loggedin'] = $this->cookie->checkcookie();
if ($this->form_validation->run('register') == FALSE)
{
$data['username'] = array(
'name' => 'username',
'id' => 'username',
'value' => set_value('username'),
'maxlength' => '24',
'size' => '24',
'style' => '',
);
$data['password'] = array(
'name' => 'password',
'id' => 'password',
'value' => set_value('password'),
'maxlength' => '24',
'size' => '24',
'style' => '',
);
$data['password2'] = array(
'name' => 'password2',
'id' => 'password2',
'value' => set_value('password2'),
'maxlength' => '24',
'size' => '24',
'style' => '',
);
$data['first'] = array(
'name' => 'first',
'id' => 'first',
'value' => set_value('first'),
'maxlength' => '24',
'size' => '24',
'style' => '',
);
$data['middle'] = array(
'name' => 'middle',
'id' => 'middle',
'value' => set_value('middle'),
'maxlength' => '24',
'size' => '24',
'style' => '',
);
$data['last'] = array(
'name' => 'last',
'id' => 'last',
'value' => set_value('last'),
'maxlength' => '24',
'size' => '24',
'style' => '',
);
$data['email'] = array(
'name' => 'email',
'id' => 'email',
'value' => set_value('email'),
'maxlength' => '128',
'size' => '50',
'style' => '',
);
$data['submit'] = array(
'name' => 'register',
'id' => 'register',
'value' => 'Register',
'maxlength' => '24',
'size' => '24',
'style' => '',
);
$this->load->view('register_view', $data);
}
else
{
$this->updateDB($_POST);
}
}
[eluser]xtremer360[/eluser]
Well everything looks right to me. Hopefully someone else will answer because I'd like to know for myself.
|