2016-07-28 82 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

相关问题