我正在使用CodeIgnitor并试图将数据保存到MYSQL中-当我按下提交按钮时,页面会刷新,表中没有保存任何内容。
起初我以为这是因为我错过了<form>
标签,但添加它们并没有什么区别。
CodeIgniter仍然是新的,所以希望它是我错过的简单的东西
型号:
/* Insert postcodes to table*/
function saverecords($postCode,$delivery)
{
$query="insert into postCodes values('','$postCode','$delivery')";
$this->db->query($query);
}
控制器
class Backend extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->library('session');
// Set user's selected language.
if ($this->session->userdata('language'))
{
$this->config->set_item('language', $this->session->userdata('language'));
$this->lang->load('translations', $this->session->userdata('language'));
}
else
{
$this->lang->load('translations', $this->config->item('language')); // default
}
/* load database libray manually */
$this->load->database();
/* load Model */
$this->load->model('Settings_model');
}
public function savedata()
{
/* load registration view form */
$this->load->view('insert');
/* Check submit button */
if($this->input->post('savePostcode'))
{
$first_name=$this->input->post('postCode');
$last_name=$this->input->post('delivery');
$this->Settings_model->saverecords($postCode,$delivery);
echo "Records Saved Successfully";
}
}
主页
<form method="post">
<div class="form-group">
<label for="postcode">Enter Postcode Area</label>
<input style="font-size:12px" name="postCode" id="postcode" class="form-control required" value="e.g CF11">
</div>
<div class="form-group">
<label for="deliveryCost">Delivery Charge</label>
<input style="font-size:12px" name="delivery" id="deliveryCost" class="form-control required" value="e.g 5.00">
</div>
<button type="button" class="save-settings btn btn-primary btn-xs"
title="<?= lang('save') ?>">
<span class="glyphicon glyphicon-floppy-disk"></span>
<?= lang('save') ?>
</button>
<input type="submit" name="savePostcode" value="Save Data"/>
</form>
您的表单没有定义action
,因此单击提交按钮时不会发生任何事情。
你需要做的第一件事,实际上与Codeigner无关,而是与HTML表单的构建方式有关,就是改变这一点:
<form method="post">
为此:
<form method="post" action="<?php echo base_url('backend/savedata'); ?>">
这实际上会将数据发布到backend
控制器中的savedata
方法中。
$query="insert into postCodes (colname1,colname2,colname3) values('','$postCode','$delivery')";
我认为这里的查询有误
调试并检查$postCode和$delivery的值是否传递到模型中。如果是,只需使用此即可。
$data = array(
'postCode' => $postCode,
'delivery' => $delivery
);
$this->db->insert('postCodes ', $data);