当URL有额外的段(CodeIgniter)

时间:2016-06-08 13:07:58

标签: javascript php codeigniter codeigniter-3

我有这个Javascript用于依赖下拉列表,问题是,如果我在URL中的函数名称之后放置一个段,它就无法工作。例如:

localhost/Folder/Class/function/data

但是,如果我只放localhost/Folder/Class/function,它确实完全有效。

我正在使用第3个URI段来进行更新功能:

首先我在我的数据表上有这个按钮来显示信息

<a href = "<?php echo base_url(); ?>Employees/allinfo/'.$info->ID_NUM.'" class = "btn btn-sm btn-primary pull-left fa fa-question-circle" title="Show Personal Information"> Personal Info</a>

然后当信息显示时,我有一个更新按钮

<a href = '<?php echo base_url().'Employees/updatepersonalinfo/'.$data; ?>' class = 'btn btn-sm btn-info pull-right fa fa-edit'>&nbsp Update</a>

表单现在通向此控制器,

public function updatepersonalinfo(){

    $data['content'] = $this->Employees_Model->personalinfo();
    $data['content1'] = $this->Employees_Model->nationality();
    $data['content2'] = $this->Employees_Model->provinces();
    $data['content_view'] = 'Employees/edit_personalinfo';
    $this->templates->admin_template($data);


}

personalinfo模型有此查询

"SELECT * FROM employees WHERE ID_NUM = '".$this->uri->segment(3)."'";

将打开此表单

    <?php
      echo form_open('Employees/updatepinfo/'.$this->uri->segment(3));
    ?>
     *some input field
     <?php
      echo form_close();
    ?>

这就是为什么我需要网址段..

这是我正在使用的Javascript:

jQuery(document).ready(function(){
  $("#PROV_ID").change(function() {
    var PROVID = {"PROVID" : $('#PROV_ID').val()};
    console.log(PROVID);

    $.ajax({
      type: "POST",
      data: PROVID,
      url: "<?php base_url(); ?>Employees/dependent_dropdown",

      success: function(data){
          var select = $('#CT_ID');
          select.html('');
          $.each(data, function(i, option){
              select.append("<option value='"+option.CT_ID+"'>"+option.CITY+"</option>");
          });
      }
     });
   });
 });

如果我选择了一个PROVINCE,它会给下一个关于该procince上城市的下拉列表的值。(依赖下拉列表)它将导致这个控制器,

   public function dependent_dropdown()
   {
       if(isset($_POST['PROVID']))
       {

            $data = $_POST['PROVID'];
            $this->output
            ->set_content_type("application/json")
            ->set_output(json_encode($this->Employees_Model->getType($data)));
       }
   }

这完全正常,没有额外的网址段。但是当我在网址上添加另一个细分时,它不起作用。或者即使我只在网址中添加/

此前,当我仍然没有依赖的下拉列表时,此功能完全正常。要清楚问题只出在下拉列表jquery和url上。

1 个答案:

答案 0 :(得分:0)

您可以定义您的路线,如下所示,即使网址上还有其他细分,也可以使用它。     本地主机/文件夹/类别/功能/(:任何)