有没有一种方法可以从PHP while循环中获取所有获取的ID?

时间:2019-11-09 21:52:48

标签: javascript php jquery html ajax

我想知道是否可以从PHP while循环中获取所有获取的id,以便在jQuery中使用它们以获得翻转效果?

while ($fetch_locomotion = mysqli_fetch_assoc($result_locomotion))
{
    $id = $fetch_locomotion['id'];

    echo 
    '<a href="index.php?price='.$hash.'" style="text-decoration: none;" id="object_a_jquery">
        <div id="'.$id.'" style="perspective:1000px;height:100%;width:13%;display:inline-table;">
            <div class="front">
                <div id="object_list_price_bg" style="background-image:url(images/bg_price_f.png);"></div>
            </div>
            <div class="back">
                <div id="object_list_price_bg_b" style="background-image:url(images/bg_price.png);"></div>
            </div>
        </div>
    </a>';
}


<script>$(<?php echo $id;?>).flip();</script>

2 个答案:

答案 0 :(得分:1)

您可以将它们转储到数组中并在以后使用。

// do this before entering the loop so it isn't overwritten
$ids = [];
// Do this part inside of the while loop
$ids[] = $fetch_locomotion ['id'];

?>

/* do this part in the html section you wish to execute the javascript code */
<script>
jQuery(function ($) {
    <?php foreach ($ids as $id): ?>
        <?php echo "$('#". $id . "').flip();\n"; ?>
    <?php endforeach; ?>
});
</script>

根据您的确切代码进行了编辑:

$ids = [];
while ($fetch_locomotion = mysqli_fetch_assoc($result_locomotion))
{

    $ids[] = $fetch_locomotion['id'];

    echo 
    '<a href="index.php?price='.$hash.'" style="text-decoration: none;" id="object_a_jquery">
        <div id="'. $fetch_locomotion ['id'] .'" style="perspective:1000px;height:100%;width:13%;display:inline-table;">
            <div class="front">
                <div id="object_list_price_bg" style="background-image:url(images/bg_price_f.png);"></div>
            </div>
            <div class="back">
                <div id="object_list_price_bg_b" style="background-image:url(images/bg_price.png);"></div>
            </div>
        </div>
    </a>';
}


<script>
jQuery(function ($) {
    <?php foreach ($ids as $id): ?>
        <?php echo "$('#". $id . "').flip();\n"; ?>
    <?php endforeach; ?>
});
</script>

答案 1 :(得分:0)

我建议添加一个类属性并对其进行查询(而不是分别使用每个ID)。

此外,在这种情况下,使用其他PHP语法会更清洁。

它变成:

<?php while ($fetch_locomotion = mysqli_fetch_assoc($result_locomotion)): ?>
  <a href="index.php?price=<?= $hash ?>" style="text-decoration: none;" id="object_a_jquery_<?= $id ?>">
    <div id="<?= $fetch_locomotion['id'] ?>" class="js-flipMe" style="perspective:1000px;height:100%;width:13%;display:inline-table;">
      <div class="front">
        <div id="object_list_price_bg" style="background-image:url(images/bg_price_f.png);"></div>
      </div>
      <div class="back">
        <div id="object_list_price_bg_b" style="background-image:url(images/bg_price.png);"></div>
      </div>
    </div>
  </a>
<?php endwhile ?>

<script>
  jQuery(function ($) {
    $('.js-flipMe').flip();
  });
</script>

请注意,我也将<a>的{​​{1}}属性更改为唯一属性。