【问题标题】:Submit selection from Bootstrap dropdown menu to $_POST将 Bootstrap 下拉菜单中的选择提交到 $_POST
【发布时间】:2013-12-25 08:36:27
【问题描述】:

我的目标是将用户选择从引导下拉菜单提交到 $_POST。当我研究这个问题时,我遇到了这个(bootstrap input field and dropdown button submit) 我的问题与这个非常相似。但是,当我尝试该问题的答案建议时,由于多种原因,它对我不起作用。

我的代码

    <div class="navbar navbar-inverse navbar-static-top">
    <div class="container">
        <a href="index.php" class = "navbar-brand">Programming Cards</a>

        <!--Creats button for navigation when window gets too small-->
        <button class = "navbar-toggle" data-toggle = "collapse" data-target= ".navHeaderCollapse">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
        </button>

        <div class="collapse navbar-collapse navHeaderCollapse">
            <ul class="nav navbar-nav navbar-right">
                <li><a href="upload.php">Upload</a></li>
                <li>
                    <form action="index.php" method="POST" id="my_form">
                        <input type="hidden" name="topic" id="topic">

                        <li class="dropdown">
                            <a href="#" class="dropdown-toggle" data-toggle="dropdown">Topic Select<b class="caret"></b>
                                <ul class="dropdown-menu">
                                    <li>Introduction</li>
                                    <li>Methods</li>
                                    <li>Loops</li>
                                    <li>Conditional Logic</li>
                                </ul>
                            </a>
                        </li>
                    </form>

                    <script>
                    $(function() 
                    {
                        $('.dropdown-menu li').click(function()
                        {
                            $('#my_topic').val($(this).html());
                            $('#my_form').submit();
                        });
                    });
                    </script>
                </li>
            </ul>
        </div>
    </div>
</div>

不工作的代码方面

  1. 当 li 嵌套在表单元素内时,下拉菜单的格式会发生变化。我希望下拉菜单是一个表单,但我希望它看起来像默认的引导下拉菜单。

  2. 将 onclick 事件处理程序附加到 li 元素根本不起作用。即使点击了 li,PHP 也没有检测到 $_POST['topic']

  3. 的任何值

目标摘要

我想要默认的引导程序下拉菜单。我希望用户能够单击下拉菜单中的任何项目。单击后,选择应添加到索引“主题”处的 $_POST 数组中

【问题讨论】:

  • 我将努力创建一个。我以前从未这样做过,所以我可能需要一段时间才能弄清楚如何去做。

标签: php forms twitter-bootstrap post drop-down-menu


【解决方案1】:

您的click() 代码中存在语法错误。你在末尾漏掉了 2 个分号。

      $(function() 
                {
                    $('.dropdown-menu li').click(function()
                    {
                        $('#my_topic').val($(this).html());
                        $('#my_form').submit();
                    }); // <-- need a semi-colon here.
                }); // <-- and here.

上述以外:

  1. 您的点击处理程序显然没有被调用。

  2. 您正在使用 jquery API,而没有先链接到 jquery 脚本文件。

  3. 执行第 2 点,然后删除外部 $(function()...) 并改为使用

     $(document).ready(function(){ 
                  $('.dropdown-menu li').click(function()
                       {
                           $('#my_topic').val($(this).html());
                           $('#my_form').submit();
                       });
     });
    

并且,检查这个demo

【讨论】:

  • 感谢您的收获。对不起愚蠢的错误。我实际上修复了它仍然没有任何区别。我会确保编辑问题,以免其他观众感到困惑。
  • @user3108671 我假设您想为此使用 jquery。我在更新中指出了一些你应该修复的问题,并链接了一个演示
【解决方案2】:

试试这个

<form action="index.php" method="POST" id="my_form">
<input type="hidden" name="topic" id="topic">

    <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Topic Select<b class="caret"></b>
            <ul class="dropdown-menu">
                <li>Introduction</li>
                <li>Methods</li>
                <li>Loops</li>
                <li></li>
            </ul>
        </a>
    </li>
</form>

<script>
$(function() 
{
    $('.dropdown-menu li').click(function()
    {
        $('#my_topic').val($(this).html());
        $('#my_form').submit();
    });
});
</script>

如果要发送所有导航栏,请删除名为主题的隐藏字段并使用下一个脚本

<script>
$(function() 
{
    $('.dropdown-menu li').click(function()
    {
        $('.dropdown-menu li').each(function()
        {
            $('#my_form').append('<input type="hidden" name="topic[]" value="'+$(this).html()+'">');
        });

        $('#my_form').submit();
    });
});
</script>

【讨论】:

  • 感谢您的帮助,但是当我尝试这个时,我最终遇到了与以前的方法相同的一组错误。我将发布我的整个导航栏,看看是否有帮助。
  • @Dmitriy.Net:迪玛,超级棒! +1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-24
  • 1970-01-01
  • 2021-01-11
  • 1970-01-01
  • 2022-06-28
相关资源
最近更新 更多