【问题标题】:Possible to append result of php conditional into div?可以将php条件的结果附加到div中吗?
【发布时间】:2016-02-14 06:05:19
【问题描述】:

我有这个 php 代码:

<?php if ( $hide_all_info == 0 ) { ?> 
    <span class="film_meta_wrap">
        <div class="film_meta_title"><?php echo the_title(); ?></div>
        <div class="film_meta_text"><?php echo $film_meta_info; ?></div>
    </span>
<?php } elseif ( $hide_all_info == 1 ) { ?>
    <span class="film_meta_wrap"></span>
<?php } ?>

我需要将 if 语句的结果移动/附加到现有的 div 在当前循环项中,如下所示:

jQuery( ".film_meta_wrap" ).appendTo( ".arve-embed-container" );

我当前的结果与预期的一样,但不是我需要做的:无论if 语句如何,都附加了所有代码,并且它还在每个循环项中放置了相同的跨度(即不尊重它所在的循环用于单个帖子)。那有意义吗?我如何让 jQuery 在解析和填充 php 变量和条件之后追加一个跨度 。对于每个循环项目。甚至可能吗? Ajax 将是一个可接受的解决方案,只是不知道它是如何工作的。

编辑** 我修改了建议的代码以添加elseif 结果:

<?php if ( $hide_all_info == 0 ) { ?>

    <script>
    var _html = '<span class="film_meta_wrap">'
    +'<div class="film_meta_title"><?php echo the_title(); ?></div>'
    +'<div class="film_meta_text"><?php echo $film_meta_info; ?></div>'
    +'</span>';
    jQuery('.arve-embed-container').append(_html);
    </script>

<?php } elseif ( $hide_all_info == 1 ) { ?>

    <script>
    var _html = '<span class="film_meta_wrap"></span>';
    jQuery('.arve-embed-container').append(_html);
    </script>

<?php } ?>

【问题讨论】:

    标签: php jquery append conditional appendto


    【解决方案1】:

    你可以这样做:

    <?php if ( $hide_all_info == 0 ) {
    
        echo '<script>';
        $innerHtml = '<span class="film_meta_wrap">
                        <div class="film_meta_title">'.the_title().'</div>
                        <div class="film_meta_text">'.$film_meta_info.'</div>
                    </span>';
        echo 'jQuery(function(){ jQuery(".arve-embed-container").append('.$innerHtml.') });';
        echo '</script>'
    
    } elseif ( $hide_all_info == 1 ) { ?>
        <span class="film_meta_wrap"></span>
    <?php } ?>
    

    终于成功了

    做:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <!-- jQuery should be decalred on the top --->
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    </head>
    <body>
        <div class="arve-embed-container">
    
        </div>
    
        <?php 
        $hide_all_info = 0;
        if ( $hide_all_info == 0 ) {
        $innerHtml = '<span class="film_meta_wrap">
                        <div class="film_meta_title">Yo</div>
                        <div class="film_meta_text">Wassup</div>
                    </span>';
        echo '<script>';
        echo '$(function(){ $(".arve-embed-container").append(\''.str_replace("\n", "", $innerHtml).'\') });';
        echo '</script>';
    
        } elseif ( $hide_all_info == 1 ) { ?>
            <span class="film_meta_wrap"></span>
        <?php } ?>
    
    
    
    </body>
    </html>
    

    【讨论】:

    • 我修改了您的代码,在上面的代码中包含另一个 .append() 用于 elseif 结果,但它仍然无法正常工作。测试站点在这里,如果你想看看:davejmoz.com/test
    • 你的单引号和双引号有点乱,但在我修复这些之后仍然无法正常工作。
    • 最新的编辑实际上使所有内容都消失了。以前更好。
    • 我在 Wordpress 中使用它,所以我已经将 jQuery 加入队列。而我的$hide_all_info 变量会引入动态发布元数据,所以我不能将其设置为 0。如果您想查看工作测试站点,它就在这里:davejmoz.com/test
    • 这只是我使用的一个示例变量。您尝试运行更新后的代码吗?
    猜你喜欢
    • 2015-06-08
    • 2018-07-16
    • 1970-01-01
    • 2017-08-06
    • 2019-02-11
    • 1970-01-01
    • 1970-01-01
    • 2015-07-19
    • 1970-01-01
    相关资源
    最近更新 更多