在php循环中显示一个表单

时间:2012-06-08 22:27:46

标签: php html forms loops while-loop

我正在使用一个如下所示的简单循环:

$query = "SELECT * FROM $username"; 
$result = mysql_query($query) or die(mysql_error());
    while($row = mysql_fetch_array($result)){
        echo $row['id']. " - ". $row['file'];
        echo "<br />";
                echo "<form method="post" action="" style="width: 80px">
            <input name="Checkbox1" type="checkbox" /><input name="Submit1" type="submit"               value="submit" /></form>";

当我像这样运行时,我得到一个&lt;出乎意料。我相信我可能会做一些完全错误的事情。是否有其他方法可以在php循环中输出表。

5 个答案:

答案 0 :(得分:7)

见这一行:

echo "<form method="post" action="" style="width: 80px">
     ^             ^
     |             End of string
     Start of string

在以相同类型的引号分隔的字符串内转义引号(\")。

答案 1 :(得分:4)

引号内有引号。应使用\转义它们。

echo "<form method=\"post\" action=\"\" style=\"width: 80px\">...";

您也可以使用单引号:

echo '<form method="post" action="" style="width: 80px">...';

单引号和双引号之间的区别在于单引号不显示变量:

<?php
$a = 'b';
echo '$a'; // output: $a
echo "$a"; // output: b
echo $a; // output b

答案 2 :(得分:1)

我不知道这是否是唯一的问题,但你必须逃避双引号:

echo "<form method=\"post\" action=\"\" style=\"width: 80px\">
        <input name=\"Checkbox1\" type=\"checkbox\" />
        <input name=\"Submit1\" type=\"submit\" value=\"submit\" />
      </form>";

您还可以使用简单的引号来分隔字符串:

echo '<form method="post" action="" style="width: 80px">
        <input name="Checkbox1" type="checkbox" />
        <input name="Submit1" type="submit" value="submit" />
      </form>';

答案 3 :(得分:0)

你应该抓双引号或者只使用单引号作为echo语句。

答案 4 :(得分:0)

在没有反斜杠"的双引号语句echo "<div id="pong" >;中指定字符串时,不能使用双引号(\")。你有三个选择:

  1. 更改"
  2. 的第一个和最后一个'
  3. 在代码中添加反斜杠。
  4. 连接字符串,如:echo "<form method="."post".">"