来自 PHP/MySQL 的 Ajax 加载生成带有变量传递的 Bootstrap 下拉列表

Posted

技术标签:

【中文标题】来自 PHP/MySQL 的 Ajax 加载生成带有变量传递的 Bootstrap 下拉列表【英文标题】:Ajax load from PHP/MySQL generated Bootstrap drop down with variable pass 【发布时间】:2014-09-13 20:00:24 【问题描述】:

我的代码有两个问题,但由于我不太确定它们是否相关,所以我将它们一起问。

问题一:我的按钮组,静态 + 动态生成(通过 mysql 查询的 php while 循环)在第一页加载时加载。但是,在使用 Ajax 加载内容后,下拉菜单不再起作用(没有下拉菜单)并且按钮不再反应。怎么会?

问题二:如何将变量从 PHP 生成的下拉列表传递给 Ajax 加载调用?第一个链接(ID = 1)有效,所有其他链接都不做(甚至没有错误)。如果我将 ID 设为静态(使用自己的 IDNR 为每个不同的链接 ID 进行 Ajax 调用),它们都可以工作。

代码: html/PHP:

<ul class="dropdown-menu" role="menu">
   <?php
      $querygenre = "SELECT lib_genre.genre_name as name,
      lib_genre.genre_id as id from lib_edition
      join lib_editionrelatestowork on lib_editionrelatestowork.edition_id = lib_edition.edition_id
      join lib_workhasgenre on lib_workhasgenre.work_id = lib_editionrelatestowork.work_id
      inner join lib_genre on lib_genre.genre_id = lib_workhasgenre.genre_id
      group by lib_genre.genre_id order by name asc";
      $resultgenre = $db->query($querygenre);

      while ($result_row = $resultgenre->fetch(PDO::FETCH_ASSOC))
      
         $genrename = $result_row['name'];
         $genreid = $result_row['id'];
   ?>
   <li>
      <a href="#" id="genre" idnr="<?php echo $genreid?>">
          <?php echo $genrename?>
      </a>
   </li>
   <?php
      
   ?>
 </ul>

...

<div class="row" id="content">
</div>

在 HTMP/PHP 文件的末尾:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<script src="js/jquery-ui-1.10.3.min.js" type="text/javascript"></script>
<script src="js/bootstrap.min.js" type="text/javascript"></script>

<script type="text/javascript">

    $(document).ready(function()
        $('#genre').click(function()
            var idnr = $(this).attr('idnr');
            url = "getbygenretest.php?genre_id=" + idnr;
            $('#content').load(url);
        );

        $('#test').click(function()
            $('#content').load('getbygenretest.php?genre_id=3');
        );
    )
</script>

【问题讨论】:

【参考方案1】:

我不确定,但试试这个:

id="genre" 更改为class="genre" 并将$('#genre') 更改为$('.genre')

您的 HTML 属性重复。

【讨论】:

啊,是的,我的第二个问题就是这样。您知道为什么加载 ajax 内容后我的下拉菜单不起作用吗? 没关系,我找到了。加载页面上包含的某些(标准)JS 似乎存在冲突。因为无论如何它们都是不必要的,所以我删除了它们,现在一切正常。

以上是关于来自 PHP/MySQL 的 Ajax 加载生成带有变量传递的 Bootstrap 下拉列表的主要内容,如果未能解决你的问题,请参考以下文章

PHP+Ajax点击加载更多内容实例带源码

如何使用 datepicker、ajax、php、mysql 在两个日期之间生成报告?

利用AJAX+PHP+MySQL实现不重新加载页面进行用户名已注册检测

如何在 PHP / MySQL 中使用 jQuery SlickGrid(加载服务器数据并保存更改)

这是正确使用 ajax 和 php - mysql - javascript 吗?

使用 Ajax、PHP、MYSQL 更新表单