下拉列表更改的 JQuery 在 codeigniter 中不起作用

Posted

技术标签:

【中文标题】下拉列表更改的 JQuery 在 codeigniter 中不起作用【英文标题】:JQuery on dropdown list change is not working in codeigniter 【发布时间】:2016-12-02 08:50:05 【问题描述】:

我是代码点火器的新手,我在 *** 线程的数量中搜索了以下问题,但似乎没有一个能解决我的问题。

我有以下查看代码:

<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>

好的,当我更改下拉列表选择时,什么也没有发生,这实际上应该调用我的控制器方法。你能帮我解决这个问题吗?

谢谢

【问题讨论】:

如果显示任何错误,请查看浏览器控制台 【参考方案1】:

您正在使用&lt;select&gt; id 作为category

但在 jquery 中,您像这样调用 $("#select1").change(function(event)

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

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

【讨论】:

我的错误实际上是 name 和 id 字段具有相同的 select1 值,但事件仍然不会在更改时触发,谢谢您的回复! echo base_url() 的值是多少; ? 在 index.php "/index.php/mycontroller/method" 之前添加一个/ 实际上你的检查点帮助我解决了这个问题,这是一个定义不正确的 baseurl 的问题。谢谢! 没问题。很高兴帮助:)【参考方案2】:

如果您的脚本包含任何错误,请在控制台中检查。

如果脚本没有错误,请通过添加警报或控制台语句检查更改后调用的函数。

如果函数被调用,检查 base_url。根据最新评论“/”缺失。

你也可以试试关注sn-p:

//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>

【讨论】:

实际上这是我之前遇到的另一个问题,它生成了我的控制台浏览器中未定义的 funName,尽管它在 select 标记中定义。什么给了?【参考方案3】:

你的 jquery 选择器有错误。

你正在使用$("#select1").change(function());

在您的部分中,此名称中没有引用任何 id。

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

     //ur code here

);

【讨论】:

【参考方案4】:

您在 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) 

            
        );
    );
);

【讨论】:

感谢您的回复,实际上 name 和 id 具有相同的 select1 值,但事件仍然不会在更改时触发。我刚刚编辑了我的问题。

以上是关于下拉列表更改的 JQuery 在 codeigniter 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

在更改第一个 ddl 时使用 jquery ajax 绑定下拉列表

下拉列表更改的 JQuery 在 codeigniter 中不起作用

每当我更改第一个下拉列表中的选项时,需要 jquery 将第二个下拉列表的默认选项更改为“选择”

在 ASP.NET MVC 中的下拉列表上触发 jQuery 更改事件并将参数传递给 url 操作

如何使用 jquery json 和 php 更改多个下拉列表

jQuery 用于根据下拉列表的更改值在 asp 中继器中设置背景颜色