Как направить встроенный HTML-код в переменную? - PullRequest
0 голосов
/ 08 июля 2019

Этот код PHP выводит HTML пользователю.

    <div class="whole">
        <input type="hidden" class="hid" name="hid" value="<?php echo $datum['id']; ?>">
        <div class="col1">  <div class="d1" id="naam<?php echo $datum['id']; ?>"><?php echo $datum['name']; ?></div>        
        </div>
        <div class="col2">  <div class="d2" id="email<?php echo $datum['id']; ?>"><?php echo $datum['email']; ?></div>

        </div>
        <div class="col3">  <div class="d3" id="state<?php echo $datum['id']; ?>"><?php echo $datum['state']; ?></div>

        </div>
        <div class="col4">  <div class="d4" id="gender<?php echo $datum['id']; ?>"><?php echo $datum['gender']; ?></div>

        </div>
        <div class="col5">  <div class="d5" id="lang<?php echo $datum['id']; ?>"><?php echo $datum['lang']; ?></div>

        </div>
        <div class="col6">
            <?php
                echo "<a href='images/".$datum['image']."' data-lightbox='picbox' data-title='".$datum['image']."'> <img src='images/".$datum['image']."'></a>";
            ?>
        </div>
    </div>

Вместо отправки этого вывода пользователю, я хочу его в переменной $output. Как я могу это сделать?

Ответы [ 3 ]

0 голосов
/ 08 июля 2019
<?php
ob_start();
?>
    your html goes here
<?php
$html = ob_get_contents();
ob_end_clean();
0 голосов
/ 08 июля 2019

Использовать синтаксис heredoc , например:

$output = <<<ANY_IDENTIFIER_THAT_DOES_NOT_APPEAR_IN_THE_TEXT_HERE
<div class="whole">
    <input type="hidden" class="hid" name="hid" value="{$datum['id']}">
    <div class="col1">  <div class="d1" id="naam{$datum['id']}">{$datum['name']}</div>        
    </div>
    <div class="col2">  <div class="d2" id="email{$datum['id']}">{$datum['email']}</div>

    </div>
    <div class="col3">  <div class="d3" id="state{$datum['id']}">{$datum['state']}</div>

    </div>
    <div class="col4">  <div class="d4" id="gender{$datum['id']}">{$datum['gender']}</div>

    </div>
    <div class="col5">  <div class="d5" id="lang{$datum['id']}">{$datum['lang']}</div>

    </div>
    <div class="col6">
        <a href='images/{$datum['image']}' data-lightbox='picbox' data-title='{$datum['image']}'> <img src='images/{$datum['image']}'></a>
    </div>
</div>
ANY_IDENTIFIER_THAT_DOES_NOT_APPEAR_IN_THE_TEXT_HERE;

Эта последняя часть должна быть точно такого же идентификатора, как и в начале, без отступа и с точкой с запятой.

Также обратите внимание, что я вынул все секции <?php ?> и заменил их на {$datum['image']} доступы (если я не пропустил один). Heredocs в PHP работают так же, как "double quoted strings", за исключением того, что разбросаны по нескольким строкам и могут содержать " отметок.

Дополнительную информацию см. В документации PHP по синтаксису строки .

0 голосов
/ 08 июля 2019

Вы можете использовать Jquery , чтобы получить HTML-код внутри вашего div:

$( document ).ready(function() {
    data = $(".whole").html();
    console.log(data);
});

Где данные:

<input type="hidden" class="hid" name="hid" value="<?php echo $datum['id']; ?>">
<div class="col1">  <div class="d1" id="naam<?php echo $datum['id']; ?>"><!--?php echo $datum['name']; ?--></div>
</div>
<div class="col2">  <div class="d2" id="email<?php echo $datum['id']; ?>"><!--?php echo $datum['email']; ?--></div>

</div>
<div class="col3">  <div class="d3" id="state<?php echo $datum['id']; ?>"><!--?php echo $datum['state']; ?--></div>

</div>
<div class="col4">  <div class="d4" id="gender<?php echo $datum['id']; ?>"><!--?php echo $datum['gender']; ?--></div>

</div>
<div class="col5">  <div class="d5" id="lang<?php echo $datum['id']; ?>"><!--?php echo $datum['lang']; ?--></div>

</div>
<div class="col6">
    <!--?php
        echo "<a href='images/".$datum['image']."' data-lightbox='picbox' data-title='".$datum['image']."'--> <img src="images/&quot;.$datum[" image']."'="">";
    ?&gt;

После этого вы можете отправить data в PHP через AJAX

...