我有一个名字的数据库,我希望以带有复选框的表格的形式显示。一切正常,直到我尝试将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>
答案 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";
^^^ ^^^