我像这样在 PHP 中使用 HTML。
for($i=0;$i<count($arrSql);$i++)
$opt.="<option". if($_GET['pId'] == $arrSql[$i][0]){ echo "Selected";} ."value=".$arrSql[$i][0].">".$arrSql[$i][1]."</option>";
我已经测试了很长时间,它看起来正确,但是它显示错误,我不知道错误在哪里。
您不能使用连接和if
一起使用。将其更改为:
for ($i=0;$i<count($arrSql);$i++) {
$opt .= "<option"
. ($_GET['pId'] == $arrSql[$i][0] ? " selected" : '')
."value=".$arrSql[$i][0].">".$arrSql[$i][1]."</option>";
你忘了空格。
尝试以下操作:
for($i=0;$i<count($arrSql);$i++)
$opt.="<option". ($_GET['pId'] == $arrSql[$i][0] ? ' selected="selected" ' : ' ') ."value=".$arrSql[$i][0].">".$arrSql[$i][1]."</option>";
echo
这个地方不需要你的电话。您的语句仅连接字符串而不打印它们。
此外,不可能if
在字符串连接中使用语句。但是 if 快捷方式,即所谓的三元运算符适用于这种情况。
正如在另一个答案中指出的那样,在所选部分之前还缺少一个空格。
for($i=0;$i<count($arrSql);$i++) {
$opt .= "<option "
.($_GET['pId'] == $arrSql[$i][0]) ? "Selected" : ""
."value=" .$arrSql[$i][0]
. ">" .$arrSql[$i][1]. "</option>";
}
另一种if
可能更清楚的使用方法是:
for($i=0;$i<count($arrSql);$i++){
$opt .="<option ";
if ($_GET['pId'] == $arrSql[$i][0]){
$opt .= "Selected";
}
$opt .= "value=" .$arrSql[$i][0]. ">" .$arrSql[$i][1]. "</option>";
}
如果你愿意,你甚至可以使用花括号将数组访问内联到字符串中,最后一行:(更多here)
$opt .= "value=${$arrSql[$i][0]}>${$arrSql[$i][1]}</option>";
将来您可能希望在脚本中启用错误输出。这将表明主要错误。