【问题标题】:Why this onclick alerts only one result from the while loop为什么这个 onclick 只提示 while 循环的一个结果
【发布时间】:2012-12-06 06:05:15
【问题描述】:

目前有三个帖子,但是当 onclick 仅提醒一个帖子时。如果我在循环中回显帖子,则显示所有三个帖子,但是如果我提醒他们,则只有一个帖子显示。请帮助或建议任何替代方案接近。

  $sql=mysqli_query($db3,"SELECT * from user where  id='$id'");
            $num_rows=mysqli_num_rows($sql);

            while($row=mysqli_fetch_array($sql)){

                $posts=$row['posts'];
            }


            ?>
        <span onclick=u(<?php echo $posts; ?>)> <?php echo $num_rows  ?> </span>

        <script type="text/javascript">
            function u(posts) {
                alert(posts);
            }
        </script>
        <?php

更新

这是第二个查询 使用数组方法后,如果我使用带有 $num 行的花式框来显示花式框中的所有帖子。我再次得到花式框上唯一的一个结果。请帮助

            $posts[] = $row['posts'];

} foreach ($posts as $af){

                echo "<div id='#modelbox_id'>$af</div>";}

            ?>


            <a href="#modelbox_id" class="modelbox"><?php   echo $num_rows; ?></a>

            <?php

【问题讨论】:

  • 它正在替换每个循环中的 $post 变量并显示最后的结果。

标签: php mysql


【解决方案1】:

这是因为您将单个帖子行分配给 $posts 变量,然后在 while 循环的每次迭代中用新值覆盖该变量。

试试这样的:

$posts = array();
while($row=mysqli_fetch_array($sql)){
    $posts[] = $row['posts'];
}

然后您需要打印$posts 数组的每个值。

例如,您可以将数组内爆成字符串:

<span onclick=u(<?php echo implode(', ', $posts); ?>)> ...

【讨论】:

  • ,谢谢。它解决了点击问题。我也希望所有帖子都显示在fancybox上。但是在使用了你的方法之后。我仍然只在fancybox上收到一个帖子。我已经对我的问题进行了ipdatedplz帮助
  • @AanaSaeed 你不应该在同一个线程中问另一个问题。尝试了解我的第一个答案如何解决您的问题并将其应用于您的新问题。如果在经过一些实验后这不起作用,请提出一个关于花式盒子的新问题。
【解决方案2】:

不如试试这样的

        while($row=mysqli_fetch_array($sql)){
            $posts .= $row['posts'].",";
        }
      ?>
    <span onclick="u('<?php echo $posts; ?>')"> <?php echo $num_rows  ?> </span>

    <script type="text/javascript">
        function u(posts) {
            alert(posts);
        }
    </script>

【讨论】:

  • 错过了Qutoes现在检查
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-17
  • 2011-09-26
  • 2017-04-18
  • 1970-01-01
  • 2012-11-15
  • 2012-05-13
  • 2021-09-24
相关资源
最近更新 更多