-2

这对我来说似乎是正确的,但它是不正确的('{$row["type"]}' 周围的代码提示着色是错误的 - 从我的 IDE 中的颜色来看,它一直在考虑一个字符串,并且在我在浏览器中运行它)。我花了几个小时试图自己解决这个问题,但无济于事。任何帮助将不胜感激。

echo "<select selected = '{$row["type"]}'  name='expense[" . $id . "][type]' >" .       $type_options . "</select>";
4

6 回答 6

2

在字符串中使用数组时,不能使用引号。跳过它们。

echo "<select selected = '{$row[type]}'  name='expense[" . $id . "][type]' >" .       $type_options . "</select>";
于 2013-09-26T15:52:09.947 回答
1

你的报价不对。

echo '<select selected ="'.$row["type"].'"  name="expense['.$id.'][type]">'.$type_options.'</select>';  
于 2013-09-26T15:51:25.010 回答
0

您当前遇到的问题是非转义双引号终止您的字符串。我的建议是为您的 HTML 元素属性使用更标准的双引号,并使用单引号来描述您的字符串,并连接变量。像这样:

echo '<select selected = "' . {$row["type"]} . '" name="expense[' . $id . '][type]">' . $type_options . '</select>';

或者为了更好的可读性,使用 printf

$format = '<select selected = "%s" name="expense[%d][type]">%s</select>';
printf($format, $row['type'], $id, $type_options);
于 2013-09-26T15:57:07.140 回答
-1
$type_options = "options";

echo $type_options;

你没有试过这个吗?

于 2013-09-26T15:50:35.277 回答
-2
echo "This works: {$row['type']}";
于 2013-09-26T15:55:11.697 回答
-2

您的代码将不起作用,因为在回显变量之前您有一个空字符串。

echo "#EMPTY STRING HERE!" . $type_options . "#EMPTY STRING HERE!";

你为什么这样做?

用这个

echo $type_options;

或者如果你想要你的字符串中的内容,甚至这个

echo "Content" . $type_options . "Content";
于 2013-09-26T15:52:56.397 回答