0

我是 PHP 和 MySQL 的新手,所以我不太确定我在这里做错了什么。我正在使用 jQuery 插件流沙来创建可过滤的投资组合。该插件使用 li 项内的自定义数据属性 data-tag 来填充过滤器导航。

我想要做的是使用 foreach 循环来填充 ul 的内容。问题是当我使用 php 从 mySQL 表中的 gallery_tag 列获取数据属性的值时,过滤器导航不会自动填充。

<?php
$pagetitle = "Red Penguin - Our Work";
$navcurrent = "work";
$headTitle = "RECENT WORK";
$headsubTitle = "SOME OF OUR RECENT WORK";
 include_once('includes/headersub.php');
 include_once('includes/connection.php'); 
 include_once('includes/project.php');

$project = new Project;
$projects = $project->fetch_all();

?>
<div class="row">       
    <nav id="filter"></nav>

    <section id="container">
        <ul id="stage" class="three-up">
        <?php foreach($projects as $project) { ?>

            <li class="gallerylist" data-tag="<?php echo $project['gallery_tag']; ?>">      
                <a href="project.php?id=<?php echo $project['gallery_id']; ?>">
                    <img src="<?php echo $project['gallery_thumb']; ?> " alt="<?php echo $project['gallery_proj']; ?>" />
                    <?php echo $project['gallery_title']; ?>
                </a>

</li>
 <?php } ?>
 </ul>
 </section>

日志中出现的错误在 jquery 行中:

 tags = elem.data('tags').split(',');

日志返回此错误:上述行的“Uncaught TypeError: Cannot call method 'split' of undefined”。

我不太清楚为什么这是一个导致 jquery 无法读取从我的表的 gallery_tag 列中获取的数据属性值的冲突。任何帮助,将不胜感激。

4

3 回答 3

1

你的elem.data('tags')回报undefined。所以split()不会工作。

于 2013-09-15T20:00:02.620 回答
1

也许我错了,但我认为你需要:tags = elem.data('tags').split(' ');

于 2013-09-15T20:01:55.213 回答
1

我猜你的 html 中有拼写错误,data-tag你正试图得到elem.data('tags')它应该是的elem.data('tag')

于 2013-09-15T20:06:00.053 回答