【问题标题】:how to loop a html content inside a php script如何在 php 脚本中循环 html 内容
【发布时间】:2012-11-01 11:16:36
【问题描述】:

我正在尝试循环这段代码,这样当 php 代码上的 while 语句启动时,数据库输出将有一个单独的 <li> 每个输出

    <li class="bar<?php echo $id; ?>">
    <div align="left" class="post_box">
    <span style="padding:10px"><?php echo $msg; ?> </span>
    <span class="delete_button"><a href="#" id="<?php echo $id; ?>" class="delete_update">X</a></span>
    <span class='feed_link'><a href="#" class="comment" id="<?php echo $id; ?>">comment</a></span>
    </div>
    <div id='expand_box'>
    <div id='expand_url'></div>
    </div>
    <div id="fullbox" class="fullbox<?php echo $id; ?>">
    <div id="commentload<?php echo $id; ?>" >
    </li>

这是我的 php 代码

    </div>
    <div class="comment_box" id="c<?php echo $id; ?>">
    <form method="post" action="" name="<?php echo $id; ?>">
    <textarea class="text_area" name="comment_value" id="textarea<?php echo $id; ?>">
    </textarea><br />
    <input type="submit" value=" Comment " class="comment_submit" id="<?php echo $id; ?>"/>
    </form>
    </div>
    </div>

<?php
if($_POST['submit'] == "submit"){
   $username="xxx_admin";
   $password="xxx";
   $database="xxx_database";

//connect to mysql server
                $mysqli = new mysqli("localhost", $username, $password, $database);

                                        //check if any connection error was encountered
                                        if(mysqli_connect_errno()) {
                                            printf("Connect failed: %s\n", mysqli_connect_error());
                                            exit;
                                        }   
   $client_id = $_POST['client_id'];
   echo $client_id;
  $query="select * from messages where client_id='$client_id'";
  $result = $mysqli->query( $query );
  $row = $result->fetch_assoc();
                                        while ($row = $result->fetch_object())
                                        {
                                                // set up a row for each record
                                                echo "<li>";
                                                $mes = $row->message;
                                                $mes = nl2br($mes);

                                                $msg ="{$mes} <br> . {$row->date_post;}";

?>
<li class="bar<?php echo $id; ?>">
<div align="left" class="post_box">
<span style="padding:10px"><?php echo $msg; ?> </span>
<span class="delete_button"><a href="#" id="<?php echo $id; ?>" class="delete_update">X</a></span>
<span class='feed_link'><a href="#" class="comment" id="<?php echo $id; ?>">comment</a></span>
</div>
<div id='expand_box'>
<div id='expand_url'></div>
</div>
<div id="fullbox" class="fullbox<?php echo $id; ?>">
<div id="commentload<?php echo $id; ?>" >

</div>
<div class="comment_box" id="c<?php echo $id; ?>">
<form method="post" action="" name="<?php echo $id; ?>">
<textarea class="text_area" name="comment_value" id="textarea<?php echo $id; ?>">
</textarea><br />
<input type="submit" value=" Comment " class="comment_submit" id="<?php echo $id; ?>"/>
</form>
</div>
</div>
</li>
<?php                                   }

     $mysqli->close();
}
?>

我正在尝试循环 html 代码,因为它将被放入 &lt;ol&gt;&lt;/ol&gt;

数据库中的所有行都应该有一个单独的&lt;li&gt;&lt;/li&gt;

【问题讨论】:

  • 在我看来你的代码应该可以工作,有什么问题?但是,您生成的 HTML 无效,因为每一行都有相同的 ID。

标签: php database loops mysqli


【解决方案1】:

official PHP site 中存在相同的循环示例。

<?php
$arr = array("one", "two", "three");
reset($arr);
while (list(, $value) = each($arr)) {
    echo "Value: $value<br />\n";
}

foreach ($arr as $value) {
    echo "Value: $value<br />\n";
}
?> 

你应该先将消息加载到一个数组中,而不是先渲染 html,然后再迭代这个数组进行 html 渲染

祝你好运!

【讨论】:

    猜你喜欢
    • 2021-12-11
    • 1970-01-01
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-05-17
    • 1970-01-01
    • 2017-10-27
    相关资源
    最近更新 更多