【问题标题】:Place Html code in between php loop将 Html 代码放在 php 循环之间
【发布时间】:2018-07-09 00:01:03
【问题描述】:

我在 php 中有一个 while 循环,想在两者之间放置单选按钮。像这样的:

     <?
     $sql = "SELECT * FROM questions WHERE `type` IN 
    ('".implode("','",$fin_element)."')";

    $result = $conn->query($sql);
    echo "check 1";
if ($result->num_rows > 0) {
// output data of each row

while($row = $result->fetch_assoc()) {
    echo "check 3";
    echo "Q:" . $row["question_name"]. "<br>";
    <UL>
        <INPUT TYPE="RADIO" NAME="question1" VALUE="answer1.1">
            <?php  
                echo "am i visible?";
                $result = $conn->query($sql);
                echo "id: " .$result->fetch_assoc()["answer1"]. "<br>";
            ?><BR>
        <INPUT TYPE="RADIO" NAME="question1" VALUE="answer1.2">
            <?php  
                $result = $conn->query($sql);
                echo "id: " .$result->fetch_assoc()["answer2"]. "<br>";
            ?><BR>
        <INPUT TYPE="RADIO" NAME="question1" VALUE="answer1.3">
            <?php  
                $result = $conn->query($sql);
                echo "id: " .$result->fetch_assoc()["answer3"]. "<br>";
            ?><BR>
        <INPUT TYPE="RADIO" NAME="question1" VALUE="answer1.4  ">
           <?php  
                $result = $conn->query($sql);
                echo "id: " .$result->fetch_assoc()["answer4"]. "<br>";
           ?><BR></UL>
      }
    } else {
           echo "0 results";
           }

   ?>

但这里的代码来自

    <UL> to </UL> 

没用

实际上我正在制作一个从数据库中获取问题和答案的测验问题,这里 fin_element 由 id 列表组成以分别获取问题,因此一次应该获取多个有答案的问题.请帮忙。

【问题讨论】:

  • 您不能只将任何元素包装在&lt;ul&gt; 中。 &lt;ul&gt; 是无序列表的父级。你需要有&lt;li&gt;'s(列表元素)。像这样:&lt;ul&gt;&lt;li&gt;...your code...&lt;/li&gt;&lt;li&gt;....&lt;/li&gt;&lt;/ul&gt;
  • 是的,我知道这就是为什么想知道一些分辨率...
  • 如果你知道它行不通,为什么要这么做?您需要将每一行包装在&lt;li&gt;....&lt;/li&gt; 中,它应该可以工作。我在您的代码中也看不到任何打开的&lt;ul&gt; 元素。您应该阅读 HTML 列表:w3schools.com/html/html_lists.asp
  • 在编写 HTML 之前,您还没有关闭 PHP 块。
  • 这里的问题太多了。您在 PHP 块中输出 HTML。然后,您将在另一个 PHP 块中打开一个新的 PHP 块。您的 HTML 等无效。您正在使用短标签 (&lt;?) 打开第一个 PHP 块(在较新版本的 PHP 中默认关闭)。

标签: php html loops mysqli radio-button


【解决方案1】:

你可以在while循环的花括号后结束你的php标签

    <?
         $sql = "SELECT * FROM questions WHERE `type` IN 
        ('".implode("','",$fin_element)."')";

        $result = $conn->query($sql);
        echo "check 1";
    if ($result->num_rows > 0) {
    // output data of each row

    while($row = $result->fetch_assoc()) {
?>

在while循环结束之前创建php标签

   <?php  
       }
} else {
       echo "0 results";
       }

【讨论】:

  • &lt;? php = 语法错误。您需要删除空格:&lt;?php。这也远不是唯一的问题。
【解决方案2】:

你必须生成无线电代码。

像下面的代码

$count = 1;
while($row = $result->fetch_assoc()) {
    echo "Q:" . $row["question_name"]. "<br><UL><li><INPUT TYPE='RADIO' NAME='question".$count."' VALUE='answer".$count.".1'>"."id: " .$row["answer1"]. "</li><li><INPUT TYPE='RADIO' NAME='question".$count."' VALUE='answer".$count.".2'>"."id: " .$row["answer2"]. "</li><li><INPUT TYPE='RADIO' NAME='question".$count."' VALUE='answer".$count.".3'>"."id: " .$row["answer3"]. "</li><li><INPUT TYPE='RADIO' NAME='question".$count."' VALUE='answer".$count.".4'>"."id: " .$row["answer4"]. "</li></UL>"
$count = $count+1;
}

【讨论】:

  • 是的,我会纠正没有观察到的。当您提交时,您会遇到问题,因为所有问题都将具有相同的单选按钮名称,这会导致问题,因此请使用 counter 为不同的问题以不同的方式命名单选按钮。 :)
  • 对于问题 1,您将拥有 4 个选项,对于问题 2,您将拥有 4 个选项。所以问题 1 的 4 个选项是同名的单选按钮。所以对于问题 1 = 4 单选按钮名称 = question1,问题 2 = 4 单选按钮名称 = question2。应该是这样的!!
  • 对不起。我的错。我完全错误地阅读了您的代码。这实际上是完全正确的。我责怪这里是一大早,而且是咖啡前:-)
  • 没问题,我们是来学习的。错误甚至发生在我身上。你知道你纠正了我错过的代码&lt;li&gt;,谢谢。 :)
【解决方案3】:

我不明白你的概念,因为我的声誉很低所以不要评论它,但是你在这里写的那一行

<UL> to </UL>  does not work

实际上它是行不通的,因为你不能只在&lt;ul&gt;中包装任何元素

你唯一能做的就是通过

<?php
echo '<UL><LI><INPUT TYPE="RADIO" NAME="question1" VALUE="answer1.1">';
//another php code goes here
echo '</LI></UL>';
?>

你还可以这样做:

<?php
echo '<ul>';
while()
{
 //your loop goes here
  echo '<li>';
  //your code
  echo '</li>';

  echo '<li>';
  //your code
  echo '</li>';
}
echo '<ul>';

【讨论】:

    猜你喜欢
    • 2012-09-02
    • 1970-01-01
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-26
    • 2016-01-24
    相关资源
    最近更新 更多