触发器提交表格单击菜单下拉链接链接



我有一个下拉菜单列表,该菜单显示所有当前语言。

问题:我该如何进行,因此每当我单击我的语言for foreach循环中的链接时。它将触发提交下面的表格。

<ul class="dropdown-menu" role="menu">
<?php foreach($languages as $language) {?>
<li><a id="language-form"><?php echo $language['name'];?></a></li>
<form action="<?php echo base_url('admin/common/header/set_lang');?>" id="lang" method="post">
<input type="hidden" name="lang" value="<?php echo $language['code'];?>" />
</form>
<?php }?>
</ul>

您可以使用Ajax简化此代码,而不是生成许多表单。

请参阅以下代码

<ul class="dropdown-menu" role="menu">
    <?php foreach($languages as $language) {?>
    <li class="lang-item">
        <a value="<?php echo $language['code'];?>">
            <?php echo $language['name'];?>
        </a>
    </li>
    <?php }?>
</ul>
<script>
    $(document).on('click', '.lang-item', function(){
        var value = $(this).find('a').attr('value');
        $.ajax({
            method: 'POST',
            url: "<?php echo base_url('admin/common/header/set_lang');?>",
            contentType: false,
            data: "lang=" + value
        }).then(function(){
            console.log('language successfully update');
        });
    });
</script>

尝试以下:

$('.dropdown-menu').on('click', 'a', function() {
    $(this).siblings('form').submit();
});

1st .. iD应该是唯一的..尝试使用类

class="language-form"

而不是

id="language-form"

第二个通过单击li

提交表格
$('dropdown-menu li').on('click',function(){
    $(this).next('form').submit();
});

第三名通过单击li中的锚来提交表格,然后将ID更改为class

$('dropdown-menu li .language-form').on('click',function(e){
        e.preventDefault();
        $(this).closest('li').next('form').submit();
    });

最新更新