Codeigniter 3.1.9表格不提交数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeigniter 3.1.9表格不提交数据相关的知识,希望对你有一定的参考价值。

大家好我是新来的,现在我正在为一个项目建立一个网站我遇到了最后一个问题我需要修复一个没有将数据提交到数据库的表单而且它没有将用户重定向到以前的页

我试着将表单的代码与我的控制器中的其他表单,我的观点和模型进行比较,但我看不出任何差异。我几次检查几次,我试图搜索一些解决方案,但没有一个工作

首先,这是控制器函数,它从表单中获取数据,以便在数据库中进行更新

public function modifier_stage($stage_id)
    {
        $this->load->helper(array('form','url'));

        $this->load->model('mStages');
        $stage = $this->mStages->get_non_valide($stage_id);
        if(!$stage) redirect('main_stage/afficher_gestion_stages');

        $data = array();
        $data['stage'] = $stage;

        $this->load->library('form_validation');
        $this->form_validation->set_rules('intitule', 'Intitule_stage','required');
        $this->form_validation->set_rules('nom_entreprise','Nom entreprise','required'); 
        $this->form_validation->set_rules('date_debut','Date de début','required');
        $this->form_validation->set_rules('date_fin','Date de fin','required');
        $this->form_validation->set_rules('adresse','Adresse','required');
        $this->form_validation->set_rules('mission','Mission du stage','required');
        $this->form_validation->set_rules('code_postal','code postal','required');
        $this->form_validation->set_rules('ville','Ville','required');
        $this->form_validation->set_rules('pays_stage','Pays','required');
        $this->form_validation->set_rules('mail','Mail auteur','required'); 


        if($this->form_validation->run() == FALSE)
        {
            $this->load->view('stage_modif',$data);
            echo validation_errors();
        }
        else{
                $emailauteur = $this->input->post('mail');
                $entreprise_nom = $this->input->post('nom_entreprise');

                $idauteur = $this->mStages->get_utilisateur_id($emailauteur);
                $entreprise_id = $this->mStages->get_entreprise_id($entreprise_nom);
                $stage_modif = array(
                'intitule_stage' => $this->input->post('intitule'),
                'entreprise' => $entreprise_id,
                'date_debut_stage' => $this->input->post('date_debut'),
                'date_fin_stage' => $this->input->post('date_fin'),
                'adresse' => $this->input->post('adresse'),
                'mission' => $this->input->post('mission'),
                'code_postal' => $this->input->post('code_postal'),
                'ville' => $this->input->post('ville'),
                'pays' => $this->input->post('pays_stage'),
                'auteur' => $idauteur,

                );

                $this->mStages->update_stage($stage_id,$stage_modif);
                redirect('main_stage/afficher_gestion_stages');
        }
    }

现在这是在数据库中进行更新的模型函数

 public function update_stage($stage_id,$data)
{
    $this->db->where('id_stage',$stage_id);
    $query = $this->db->update('stage', $data);
}

最后,这是视图中表单的代码

 <form method="POST" >


    <label> Intitulé du Stage </label><input class="pseudo" id="pseudo" type="text"  name="intitule" value="<?php echo set_value('intitule',$stage->intitule_stage);?>" required="" >
    <br>

    <label> Nom Entreprise </label><input class="pseudo" id="pseudo" type="text" name="nom_entreprise" value="<?php echo set_value('nom_entreprise',$stage->nom_entreprise);?>" required="">
    <br>

    <br> 
    <label> Date de début </label><input type="date" name="date_debut" class="pseudo" id="pseudo" value="<?php echo set_value('date_debut',$stage->date_debut_stage);?>" required="" >
    <br>

    <br> 
    <label> Date de fin </label><input type="date" name="date_fin" class="pseudo" id="pseudo" value="<?php echo set_value('date_fin',$stage->date_fin_stage);?>" required="">
    <br>

    <br> 
    <label> Adresse du stage</label><input class="pseudo" id="pseudo" type="text"  name="adresse" value="<?php echo set_value('adresse',$stage->stage_adresse);?>" required="">
    <br>

    <br> 
    <label> Mission du stage</label><input class="pseudo" id="pseudo" type="text"  name="mission"   value="<?php echo set_value('mission',$stage->mission);?>" required="">
    <br>

    <br> 
    <label> Code Postal du stage </label><input class="pseudo" id="pseudo" type="text"  name="code_postal"  value="<?php echo set_value('code_postal',$stage->cp_stage);?>" required="">
    <br>

    <br> 
    <label> Ville du stage </label><input class="pseudo" id="pseudo" type="text" name="ville" value="<?php echo set_value('ville',$stage->ville_stage);?>" required="">
    <br>

    <br> 
    <label> Mail Auteur du stage </label><input class="pseudo" id="pseudo" type="mail" name="mail" value="<?php $this->load->model('mStages'); echo set_value('mail',$this->mStages->get_utilisateur_email($stage->auteur));?>" required="" >
    <br>

    <br> 
    <label> Pays du stage </label><input class="pseudo" id="pseudo" type="text"  name="pays_stage" value="<?php echo set_value('pays_stage',$stage->pays_stage);?>" required="" >
    <br>

    <br>
    <br> 
    <br>

    <center><input type="submit" id="button" value="Modifier les valeurs"><?php echo anchor("/main_stage/afficher_confirmation_suppression_stage/$stage->id_stage",'Supprimer', 'class="btn_choice" ' ); ?></center>


    <br> 
    <br>

    </div>



</form> 

即使将我的代码与其他无问题的表单进行比较,我也不知道我的代码有什么问题。我需要看看为什么当我点击提交按钮时,我被卡在表单页面上,而不是被重定向到上一页并在数据库中更新数据。

答案

更改

<form method="POST">

<form method="POST" action="[url of your php script]">

有关form的动作标签here的更多信息

以上是关于Codeigniter 3.1.9表格不提交数据的主要内容,如果未能解决你的问题,请参考以下文章

在 PHP,Codeigniter 中提交带有空字段的表单时出现一些错误

不存在 URI。默认控制器集。 Codeigniter 3.1.9 和 PHP 7.0

Codeigniter CSRF 保护 VS 选项卡

如何修复我的表单没有将数据更新到数据库 [Codeigniter]

无法在数据库 PHP、Codeigniter 中搜索现有值

在 Codeigniter 中提交或更新任何内容后不显示更新的数据