2016-06-08 49 views
0

我有這個用於從屬下拉的Javascript,問題是,如果我在URL中的函數名稱後面加上一個段,它不起作用。例如:當URL有額外的段時,JavaScript不工作(CodeIgniter)

localhost/Folder/Class/function/data

,但如果我只是把localhost/Folder/Class/function,它不完全工作。

我使用了更新功能的第三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(); 
    ?> 

這就是爲什麼我需要的URL段..

這裏是我正在使用的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>"); 
      }); 
     } 
    }); 
    }); 
}); 

,如果我選擇一個省,它會給值關於對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上。

+0

你在哪裏使用SELECT查詢? $ this-> uri-> segment(3)應該始終具有相同的值,不管你在../ function/data後面有什麼...如果你需要這個uri段來更新數據庫,並且你是從模型中完成的,最好是將這個uri段放在同一個javascript部分,並將它作爲ajax中的數據傳遞。 –

+0

我在模型上使用它。我使用它來獲取我正在更新的數據的值 –

+0

嘗試在js .change函數中查看它。你可以將它作爲var id ='<?php echo $ this-> uri-> segment(3);?>'並在..../Employees/dependent_dropdown函數中使用此ID將其發送到模型。 –

回答

0

如下所示,您可以定義您的路線,使其即使在網址上有其他細分受衆羣時也能正常工作。 localhost/Folder/Class/function /(:any)

+0

我如何定義它完全 –

+0

和什麼類所有工作完全正常? –

+0

你必須在routes.php中定義上述內容。我想知道你是想抓住模式還是課堂中的uri片段。 –