这对我来说似乎是正确的,但它是不正确的('{$row["type"]}' 周围的代码提示着色是错误的 - 从我的 IDE 中的颜色来看,它一直在考虑一个字符串,并且在我在浏览器中运行它)。我花了几个小时试图自己解决这个问题,但无济于事。任何帮助将不胜感激。
echo "<select selected = '{$row["type"]}' name='expense[" . $id . "][type]' >" . $type_options . "</select>";
在字符串中使用数组时,不能使用引号。跳过它们。
echo "<select selected = '{$row[type]}' name='expense[" . $id . "][type]' >" . $type_options . "</select>";
你的报价不对。
echo '<select selected ="'.$row["type"].'" name="expense['.$id.'][type]">'.$type_options.'</select>';
您当前遇到的问题是非转义双引号终止您的字符串。我的建议是为您的 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);
$type_options = "options";
echo $type_options;
你没有试过这个吗?
echo "This works: {$row['type']}";
您的代码将不起作用,因为在回显变量之前您有一个空字符串。
echo "#EMPTY STRING HERE!" . $type_options . "#EMPTY STRING HERE!";
你为什么这样做?
用这个
echo $type_options;
或者如果你想要你的字符串中的内容,甚至这个
echo "Content" . $type_options . "Content";