javascript - 让foreach在javascript循环中一一显示?

标签 javascript php wordpress

我尝试在 javascript 循环中使用 foreach 显示页面中多个类别的最新帖子,但 foreach 却一一显示它们,如下图所示:

我想在每个元素中显示它,而不是在每个元素中显示全部。

for (var i in books) { //Start JS Code
    var html = '<div class="row"><div class="book_history">';
        // JS Output

    <?php // Start PHP
    $catids = array(39, 37, 2); // Category for test
    foreach ( $catids as $catid ) {

        $my_query = new WP_Query( array(
        'cat' => $catid,
        'ignore_sticky_posts' => 1,
        'posts_per_page' => 1,
        'no_found_rows' => true ) 
        );

        if ( $my_query->have_posts() ) :

                while ( $my_query->have_posts() ) : $my_query->the_post(); ?>
                    html += '<a href="<?php the_permalink(); ?>">»Chapter <?php the_title(); ?></a></div>'; // Javascript Code, Displaying the result of foreach with js
            <?php endwhile;

        endif;

        wp_reset_postdata();
    } ?> // End PHP

        $bookcontainer.append(html); // Insert all result of foreach and js into some element

} // End JS Code

有什么解决办法吗? *类别的顺序与JavaScript相同。

最佳答案

由于 PHP 是在服务器端呈现的,因此您无法以这种方式将其与 JavaScript 结合起来。

但是您可以将 JSON 传递给 JavaScript 来解析结构并将其显示在网站上。

想象一下您的数据有以下数组:

$data = array(
    array(
        'category_id' => 39,
        'chapters' => array(
            array(
                'link' => 'http://google.de',
                'chapter_name' => 'First chapter',
            )
        ),
    ),
    array(
        'category_id' => 37,
        'chapters' => array(
            array(
                'link' => 'http://google.de',
                'chapter_name' => 'Second chapter',
            )
        ),
    ),
    array(
        'category_id' => 42,
        'chapters' => array(
            array(
                'link' => 'http://google.de',
                'chapter_name' => 'Third chapter',
            )
        ),
    ),
);

您可以使用 json_encode($data) 简单地输出此数组的 JSON 表示形式(确保将其回显到 JS 变量中)。

然后你就可以用 JavaScript 轻松地读出它了。这是一个很好的代码笔:https://codepen.io/YannickFricke/pen/Vqzoob

有关 forEach 函数的快速说明:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach

关于javascript - 让foreach在javascript循环中一一显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53954051/

相关文章:

javascript - 实现 Redux-Persist 时使用 AnyAction react Redux Typescript 错误

javascript - 使用 .attr() 更改图像不起作用

php - 停止在 div 内的表中滚动表标题 <th>

Wordpress 自定义帖子类型 + (YARPP)

css - 支付 Woocommerce Checkout 支付定位

javascript - 在 Backbone View 中使用函数

javascript - 为什么instanceof Map返回false?

php - 如何在“另存为”对话框中自动单击“保存”?

php - PHP DOM 有两个 HTML 问题:1.) DOMDocument::createEntityReference $name 值和 2.) 如何向一个元素添加多个 CSS 类?

wordpress - 在谷歌搜索中看不到我的 wordpress 网站