2016-07-28 50 views
3

我是新來的代碼點火器,我已經在StackOverflow線程的數量中搜索了以下問題,但沒有一個似乎解決了我的問題。JQuery的下拉列表更改無法在codeigniter中工作

我有以下看法代碼:

<select name="select1" id="select1"> 
    <option value="0">None</option> 
    <option value="1">First</option> 
</select> 
<scriptsrc="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<script type="text/javascript"> 

// Ajax post 
$(document).ready(function() { 
    $("#select1").change(function(event) { 
     event.preventDefault(); 
     var id = $(this).val(); 
     jQuery.ajax({ 
      type: "POST", 
      url: "<?php echo base_url(); ?>" + "index.php/mycontroller/method", 
      dataType: 'json', 
      data: {id: id}, 
      success: function(res) { 

      } 
     }); 
    }); 
}); 
</script> 

好了當我改變下拉列表中選擇什麼也沒有發生,這實際上應該叫我控制器的方法。你能幫我解決這個問題嗎?

感謝

+0

查看瀏覽器控制檯,如果任何錯誤顯示 – Vinie

回答

5

您正在使用<select> id作爲category

但在jQuery中您所呼叫$("#select1").change(function(event)這樣。

你只需要改變$("#select1").change(function(event)

$("#category").change(function(event)

+0

我的壞其實名和ID領域有選擇1相同的值,仍然事件不會火起來的變化,感謝您的回覆 ! – siva

+0

echo base_url()是什麼值; ? – Lakshmi

+0

http:// localhost/projectname – siva

0

你在jQuery的代碼中使用id選擇,但該ID被提及作爲在HTML標記下拉列表的名稱屬性。所以請嘗試下面的代碼。

更改此如下: -

<select name="select1" id="category"> 
    <option value="0">None</option> 
    <option value="1">First</option> 
</select> 
<scriptsrc="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<script type="text/javascript"> 
// Ajax post 
$(document).ready(function() { 
    $("#category").change(function(event) { 
     event.preventDefault(); 
     var id = $(this).val(); 
     jQuery.ajax({ 
      type: "POST", 
      url: "<?php echo base_url(); ?>" + "index.php/mycontroller/method", 
      dataType: 'json', 
      data: {id: id}, 
      success: function(res) { 

      } 
     }); 
    }); 
}); 
+0

感謝您的回覆,實際上名稱和ID具有相同的select1值,但仍然不會引發更改。我剛剛編輯了我的問題。 – siva

1

有錯你的jQuery選擇。

您使用$("#select1").change(function(){});

您不必在此名稱在部分下文稱任何標識。

1

檢查控制檯,如果您的腳本包含任何錯誤。

如果沒有腳本錯誤,請檢查您的函數在更改後被調用,通過添加alert或console語句。

如果函數被調用,請檢查base_url。根據最新的評論'/'缺少。

您也可以嘗試下面的代碼片段:

//Add J Query Library here 

<select name="select1" id="select1" onchange="funName(this);"> 
    <option value="0">None</option> 
    <option value="1">First</option> 
</select> 

<script type="text/javascript"> 
function funName(element) 
{ 
    var id = element.value; 
    jQuery.ajax({ 
     type: "POST", 
     url: "<?php echo base_url(); ?>" + "/index.php/mycontroller/method", 
     dataType: 'json', 
     data: {"id" : id}, 
     success: function(res) { 
       console.log(res); 
     } 
    }); 
} 
</script> 
+0

其實這是我之前遇到的另一個問題,它會在我的控制檯瀏覽器中生成未定義的funName,儘管它在select標記中定義。是什麼賦予了 ? – siva