可以将php条件的结果附加到div中吗?

时间:2015-11-12 19:19:42

标签: php jquery append conditional appendto

我有这个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语句如何,所有代码都被附加,并且它也在每个循环项中放置相同的跨度(即。doesn&# 39;尊重它为个别职位所处的循环。那有意义吗?在解析和填充php变量和条件后,如何让jQuery在之后附加一个跨度。并为每个循环项目。它甚至可能吗? 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 } ?>

1 个答案:

答案 0 :(得分:0)

你可以这样做:

<?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>