gpt4 book ai didi

php - 让 CodeIgniter 在提交表单后保存值

转载 作者:搜寻专家 更新时间:2023-10-31 20:46:28 24 4
gpt4 key购买 nike

我是 CodeIgniter 的新手,在简单的 CRUD 应用程序中提交表单后,我真的很难让表单值重新填充(无论是错误还是成功)。我认为如果我在这里发布我的代码可能会有帮助,也许有人可以提供帮助。

这是我的 Controller :

function update($id){

$seller = $this->seller_model->get_seller_byID($id)->row();
$data['seller'] = $seller;

$data['title'] = 'Update seller';
$data['message'] = '';
$data['action'] = site_url('seller/updateSeller');
$data['link_back'] = anchor('seller/ManageSellers/','Back to list of sellers',array('class'=>'back'));

$this->load->view('EditSeller', $data);
}

function updateSeller(){

$data['title'] = 'Update seller';
$data['action'] = site_url('seller/updateSeller');
$data['link_back'] = anchor('seller/ManageSellers/','Back to list of sellers',array('class'=>'back'));

$this->setValidation();

if ($this->form_validation->run() == FALSE)
{
$data['message'] = 'fail';
}
else
{
$id = $this->input->post('id');

$seller = array('s_fname' => $this->input->post('fname'),
's_lname' => $this->input->post('lname'),
's_email' => $this->input->post('email'),
's_password' => $this->input->post('pword'));

$this->seller_model->update_seller($id,$seller);

$data['message'] = '<div class="success">update seller success</div>';
}
$this->load->view('EditSeller', $data);
}

function setValidation()
{
$this->form_validation->set_rules('fname', 'First Name', 'required');
$this->form_validation->set_rules('lname', 'Last Name', 'required');
$this->form_validation->set_rules('email', 'Email', 'required');
$this->form_validation->set_rules('pword', 'Password', 'required');
$this->form_validation->set_rules('status', 'Status', 'required');
$this->form_validation->set_rules('dealer', 'Dealer', 'required');
}

这是我的观点:

    <html>
<head>

</head>
<body>
<h2><?php echo $title; ?></h2>

<?php echo $message; ?>

<?php echo validation_errors(); ?>

<div class="content">
<form method="post" action="<?php echo $action; ?>">
<div class="data">

<p><?php
if (isset($seller->s_id))
{
echo "Id: " . $seller->s_id;
echo form_hidden("id", isset($seller->s_id) ? $seller->s_id : '' );
}
?></p>

<p>First Name:
<?php
$field = array( 'name' => 'fname',
'size' => 30,
'class'=>'input',
'value' => (isset($seller->s_fname) ? $seller->s_fname : '' ) );
echo form_input($field, set_value('fname'));
?>
</p>

<p>Last Name:
<?php
$field = array( 'name' => 'lname',
'size' => 40,
'class'=>'input',
'value' => (isset($seller->s_lname) ? $seller->s_lname : '' ) );
echo form_input($field, set_value('lname'));
?>
</p>

<p>Email:
<?php
$field = array( 'name' => 'email',
'size' => 60,
'class'=>'input',
'value' => (isset($seller->s_email) ? $seller->s_email : '' ) );
echo form_input($field, set_value('email'));
?>
</p>

<p>Password:
<?php
$field = array( 'name' => 'pword',
'size' => 20,
'class'=>'input',
'value' => (isset($seller->s_password) ? $seller->s_password : '' ) );
echo form_password($field, set_value('pword'));
?>
</p>

<p>Status:
<select name="status">
<option value="1" <?php echo set_select('status', '1', TRUE); ?>>Verified</option>
<option value="2" <?php echo set_select('status', '2'); ?>>Not verified</option>
</select>
</p>

<p>Dealer:
<input type="radio" name="dealer" value="Y" <?php echo set_radio('dealer', '1', TRUE); ?>/> Yes
<input type="radio" name="dealer" value="N" <?php echo set_radio('dealer', '2'); ?>/> No
</p>

<p><?php
if (isset($seller->s_startdate))
{
echo "Start Date: " . $seller->s_startdate;
}
?></p>

<input type="submit" value="Save"/>

<p><?php echo $link_back; ?></p>

</div>
</form>
<br />
</div>
</body>
</html>

如果我的验证成功,它会正确保存到数据库中,但在页面重新加载时文本框未填充。当出现验证错误时,数据库不会按预期进行更改,但值不会保留在表单字段中。

最佳答案

改变

  $field = array(  'name' => 'fname', 
'size' => 30,
'class'=>'input',
'value' => (isset($seller->s_fname) ? $seller->s_fname : '' ) );
echo form_input($field, set_value('fname'));

  $field = array(  'name' => 'fname', 
'size' => 30,
'class'=>'input',
'value' => set_value('s_fname', (isset($seller->s_fname) ? $seller->s_fname : '' )) );
echo form_input($field);

(并对所有其他类似事件执行相同的操作。

您可以了解有关 set_value 和重新填充表单 here 的更多信息.

关于php - 让 CodeIgniter 在提交表单后保存值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12540397/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com