只为第一个按钮调用Ajax

时间:2013-03-08 11:34:21

标签: php jquery phpmyadmin

<?php $count = 1; foreach ($settings[$slug] as $slug): ?>
    <div data-toggle="buttons-radio" class="btn-group">
       <button id="enable" value="1" class="btn btn-success active" type="button"           name="includeicon"><i class="icon-ok icon-white"></i></button>
       <button id="disable" value="0" class="btn" type="button" name="includeicon"><i class="icon-remove"></i></button>
    </div>
<?phpendforeach?>

$(document).ready(function(){

    $("#enable").click(function(event) {
    var slugid = $('#slugid').val();
    $.ajax({
           url: SITE_URL + 'admin/PluginConf/enable/?'+slugid,
        type: "POST",
        data : {'slugid' : slugid},
        success: function(data) {
                    }
                 });
    }); 

    $("#disable").click(function(event) {
    var slugid = $('#slugid').val();
    $.ajax({
        url: SITE_URL + 'admin/PluginConf/disable/?'+slugid,
        type: "POST",
        data : {'slugid' : slugid},
        success: function(data) {
                    }
     });
    });
        }); 

我在jquery中传递按钮id,但是只为第一个按钮调用了ajax。对于第二个和其他人来说它没有被调用,任何人都可以帮助我吗? 感谢

3 个答案:

答案 0 :(得分:1)

enable的ID为disableforeach。如果循环执行不止一次,那么您将拥有多个具有相同ID的按钮。 ID必须是唯一的!而是使用其他东西来识别点击:

我建议将enable类添加到启用按钮,将disable类添加到禁用按钮,然后捕获这样的事件:

$('.enable').click(function() {
    // code in here
});

$('.disable').click(function() {
    // code in here
});

答案 1 :(得分:0)

请勿按ID绑定多个项目的点击事件! Ids必须是独特的理念。

<?php $count = 1; foreach ($settings[$slug] as $slug): ?>
    <div data-toggle="buttons-radio" class="btn-group">
       <button value="1" class="enable btn btn-success active" type="button"           name="includeicon"><i class="icon-ok icon-white"></i></button>
       <button value="0" class="btn disable" type="button" name="includeicon"><i class="icon-remove"></i></button>
    </div>
<?phpendforeach?>

$(document).ready(function(){

    $(".enable").click(function(event) {
    var slugid = $('#slugid').val();
    $.ajax({
           url: SITE_URL + 'admin/xervPluginConf/enable/?'+slugid,
        type: "POST",
        data : {'slugid' : slugid},
        success: function(data) {
                    }
                 });
    }); 

    $(".disable").click(function(event) {
    var slugid = $('#slugid').val();
    $.ajax({
        url: SITE_URL + 'admin/xervPluginConf/disable/?'+slugid,
        type: "POST",
        data : {'slugid' : slugid},
        success: function(data) {
                    }
     });
    });
}); 

答案 2 :(得分:0)

当你的案例按钮中的几个元素具有相同的id时,你正在使用id不正确的东西。当你使用foreach循环时,你创建了具有相同特定id的多个按钮。 ID表示某些内容是唯一的,并且只有一个元素可以具有该specyfic id。我假设您应该为这个按钮创建一个类,并在考虑到这一点的情况下更改脚本代码。这就是我的建议。希望能帮助到你。

<?php $count = 1; foreach ($settings[$slug] as $slug): ?>
<div data-toggle="buttons-radio" class="btn-group">
   <button value="1" class="btn btn-success active enable" type="button"             name="includeicon"><i class="icon-ok icon-white"></i></button>
   <button value="0" class="btn disable" type="button" name="includeicon"><i class="icon-remove"></i></button>
</div>
<?php endforeach; ?>

$(document).ready(function(){

$(".enable").click(function(event) {
var slugid = $('#slugid').val();
$.ajax({
       url: SITE_URL + 'admin/xervPluginConf/enable/?'+slugid,
    type: "POST",
    data : {'slugid' : slugid},
    success: function(data) {
                }
             });
}); 

$(".disable").click(function(event) {
var slugid = $('#slugid').val();
$.ajax({
    url: SITE_URL + 'admin/xervPluginConf/disable/?'+slugid,
    type: "POST",
    data : {'slugid' : slugid},
    success: function(data) {
                }
 });
});
    });