【问题标题】:Codeigniter action form not workingCodeigniter 操作表单不起作用
【发布时间】:2016-10-13 22:01:40
【问题描述】:

我试图理解为什么我的表单操作没有将我带到控制器...我按下模态框上的更新按钮,它应该将模态框上的信息更新到数据库中...当我按下它时,什么也没有发生,没有错误,没有消息,它只是关闭了模式,就是这样。帮助PLS !!!。这是我的代码:

表格

<div id="modal1" class="modal modal-fixed-footer">

 <div class="modal-content">

<h3 class="center-align">Actualizar registro</h3>

<div class="row">
    <form class="col s12" id="update_form"  enctype="multipart/form-data"  method="post" action ="<?= base_url()?>admin/update_politic">
      <div class="row">
        <div class="input-field col s6">
          <input id="update_name" type="text"  name="name" class="validate">
          <label for="first_name">Nombre</label>
        </div>
        <div class="input-field col s6">
          <input id="update_last_name" name="lastname"  type="text" class="validate">
          <label for="last_name">Apellido</label>
        </div>
      </div>
      <div class="row">
        <div class="input-field col s6">
          <input id="update_side" type="text"  name="side" class="validate">
          <label for="partido">Partido</label>
        </div>
        <div class="input-field col s6">
          <input id="update_charge" type="text"  name="charge" class="validate">
          <label for="cargo">Cargo</label>
        </div>
      </div>
        <div class="row">
            <div class="input-field col s6">
               <div class="file-field input-field no-margin-top">
                  <div class="btn light-blue darken-4">
                    <span>Animación/Imagen</span>
                    <input type="file" name="animation_file">
                  </div>
                  <div class="file-path-wrapper">
                    <input class="file-path validate" id="animation" name="animation" type="text">
                  </div>
                </div>
            </div>

            <div class="input-field col s6">
            <select id="update_section"  name="section" autocomplete="off">
              <option value="" disabled selected>Seleccione una opción</option>
              <option value="1">Presidencia</option>
              <option value="2">Senadores</option>
              <option value="3">Diputados</option>
            </select>
            <label>Sección</label>
          </div>
        </div>
        <input type="hidden" name="update_politic_hide" id="update_politic_hdn" value="">
        <div class="row">
        <button class="btn waves-effect waves-light light-blue darken-4" id="submit_update" type="submit" name="action">Actualizar</button>
      </div>
    </form>
  </div>
</div>

控制器

public function update_politic(){

  echo "entreeeeeeee";
              if (empty($_FILES['animation_file']['name']))//Compruebo si el array $_files no tiene ningun valor en  su elemento name
              {
               //El metodo obtenerImagen me retorna los valores de dicho id
                  $data = $this->politic->get_file_name($this->input->post('update_politic_hide'));
                  $imagen = $data->POLITIC_FILE;//recupero el nombre de la imagen
                 }
                 else{
                  //en caso exista algun valor se procede a subir
                  $this->load->library("upload");
                  $config['upload_path'] = "./public/uploads/";
                  $config['allowed_types'] = "*";
                  $config['max_size'] = "500000";
                  $config['max_width'] = "2000";
                  $config['max_height'] = "2000";


                  if (!$this->upload->do_upload("animation")) {
                    $data['uploadError'] = $this->upload->display_errors();
                    echo $this->upload->display_errors();
                  }
                  else {

                  $file_info = $this->upload->data();
                  $params["name"] = $this->input->post("name");
                  $params["lastname"] = $this->input->post("lastname");
                  $params["side"] = $this->input->post("side");
                  $params["charge"] = $this->input->post("charge");
                  $params["animation"] = $file_info['file_name'];
                  $params["section"] = $this->input->post("section");

                  if ($params["section"]=="Presidencia") {
                      $params["section"]=1;
                  }

                  if ($params["section"]=="Senadores") {
                      $params["section"]=2;
                  }

                  if ($params["section"]=="Diputados") {
                      $params["section"]=3;
                  }

                  $this->load->model("politic");
                  $this->politic->update($params);
                }

              }
}

【问题讨论】:

  • 您可以尝试使用表单助手。然后使用 form_open_multipart() codeigniter.com/user_guide/helpers/…
  • 如果您需要设置 config.php base_url,您的表单 url 是否在 url 中显示 IP 地址。另一张支票codeigniter.com/user_guide/general/styleguide.html#file-naming
  • 不,一切都好...我在项目的其他部分使用了基本 url,没问题。
  • 您能否检查一下您是否在控制器创建中添加了extends CI_Controller
  • 签入配置文件$config['rewrite_short_tags'] = FALSE; 将值更改为TRUE

标签: php forms file codeigniter action


【解决方案1】:

您已使用base_url()?&gt;admin/update_politic 提交表单。但是你没有提到那个控制器。如果您有管理员控制器,那就没问题了。否则,这就是本次提交的原因。

【讨论】:

  • 我创建了管理控制器 =(
  • 函数 update_politic 是管理控制器内部的一个方法。
  • 我已经测试了您的代码,发现它可以毫无问题地提交给管理控制器。打开你的错误报告,然后你可以很容易地诊断出那个错误。
【解决方案2】:

试试这个

 <?php echo form_open(base_url() . 'admin/update_politic' , array('class' => 'form-horizontal form-groups-bordered validate', 'enctype' => 'multipart/form-data'));?>

【讨论】:

  • 尚未工作 =( ...我尝试了您的解决方案,但什么也没有,没有消息,没有错误,什么都没有。
  • 使用 代替按钮
  • 正确检查表单的打开和关闭
  • 查看页面源码?
  • 试试这个 'form-horizo​​ntal form-groups-bordered validate', 'enctype' => 'multipart/form-data'));?>
【解决方案3】:

使用 input type = "submit" value ="Submit" class="your class name here">

代替按钮

【讨论】:

    猜你喜欢
    • 2014-12-01
    • 2017-09-17
    • 1970-01-01
    • 2016-06-12
    • 2014-07-22
    • 2014-06-02
    • 1970-01-01
    • 2019-08-20
    • 2012-07-14
    相关资源
    最近更新 更多