输入html标签无法在php中正确解析

时间:2012-11-13 22:53:05

标签: php html mysql

  

可能重复:
  Parse error: syntax error, unexpected T_STRING 59

我有一个名字的数据库,我希望以带有复选框的表格的形式显示。一切正常,直到我尝试将html标签放入我的PHP代码中。当我把输入标签放入其中时给出了错误:

解析错误:语法错误,意外T_STRING,期待','或';'

我看不出我会把逗号或半冒号放在哪里。

<form>
    <?php
    $name = $_POST['name'];

    $host = "mysql16.000webhost.com";
    $user_name = "a1611480_akaash";
    $pwd = "****";
    $database_name = "a1611480_akaash";
    $db = mysql_connect($host, $user_name, $pwd);

    mysql_select_db($database_name);

    $result = mysql_query("SELECT name FROM Sort");

    $var = array();
    while ($row = mysql_fetch_array($result)) {
        $var[] = $row['name'];
    }

    $unique = array_unique($var);

    foreach ($unique as $value) {

        echo "<p class = Body_text><label>$value</label> <input type="checkbox" name="name" value="$value" /> </p>\n";
    }
    ?>
</form>

5 个答案:

答案 0 :(得分:2)

在你的回声线上,整个东西必须用双引号括起来。您在复选框之前打开双引号,以便将复选框视为未知的PHP调用。使用单引号和双引号的组合。

答案 1 :(得分:1)

改变这一行..你必须逃避双引号

答案 2 :(得分:1)

替换它:

echo "<p class = Body_text><label>$value</label> <input type="checkbox" name="name" value="$value" /> </p>\n"

用这个:

echo <<<EOD
<p class = Body_text><label>$value</label> <input type="checkbox" name="name" value="$value" /> </p>
EOD;

...这使用HEREDOC syntax,可以轻松绕过您的大多数报价问题。但是,它有一个重要的警告:行EOD; 不能缩进,并且该行上不能有任何其他内容(例如尾随空格)。

答案 3 :(得分:0)

替换“echo”行
echo "<p class = Body_text><label>$value</label> <input type='checkbox' name='name' value='$value' /> </p>\n";

因为你使用双引号作为字符串分隔符以及复选框本身,所以它有点突破了php字符串。

答案 4 :(得分:0)

您需要转义反斜杠,或者使用heredoc语法。请参阅下面的几个示例,其中包含您的PHP代码:

echo "<p class = Body_text><label>$value</label> <input type="checkbox" name="name" value="$value" /> </p>\n";
                                                            ^^^      ^^^