请原谅我,如果我发布的不正确,或者某个地方有这个问题的答案 - 我一直在寻找答案,但我还没有找到答案。
我在echo语句中嵌套引号,它让我感到悲伤(500错误)
此代码有效(以及双引号和单引号的各种排列):
<form action='update.php' method='post'>
<p>
<input type='hidden' name='log_id' value='<?php echo $row["log_id"]; ?>'/>
<input type='time' name='time_back' id='time_back'>
<input type='submit' value='Update'>
</p>
</form>
此代码似乎不起作用:
<?php
if($row["time_back"] == '00:00:00')
{ echo "<form action='update.php' method='post'>
<p>
<input type='hidden' name='log_id' value='<?php echo $row[\"log_id\"]; ?>'/>
<input type='time' name='time_back' id='time_back'>
<input type='submit' value='Update'>
</p>
</form>";}
else { echo $row["time_back"]; }
?>
我只是不明白我在这里弄错了什么。我已经把各种各样的东西倾注在嵌套引号上,我仍然无法理解它。
答案 0 :(得分:2)
最好的办法(如果你不打算使用模板引擎)就是停止使用echo打印这么多html。即关闭并重新打开PHP标记,以便在PHP标记之外正常打印大部分HTML:
<?php
if($row["time_back"] == '00:00:00')
{
?>
<form action='update.php' method='post'>
<p>
<input type='hidden' name='log_id' value='<?php echo $row['log_id']; ?>' />
<input type='time' name='time_back' id='time_back'>
<input type='submit' value='Update'>
</p>
</form>
<?php
}
else { echo $row["time_back"]; }
?>
第二好,关闭引号并连接,然后重新打开它们:
<?php
if($row["time_back"] == '00:00:00')
{ echo "<form action='update.php' method='post'>
<p>
<input type='hidden' name='log_id' value='" . $row['log_id'] . "' />
<input type='time' name='time_back' id='time_back'>
<input type='submit' value='Update'>
</p>
</form>";
}
else { echo $row["time_back"]; }
?>
答案 1 :(得分:0)
正如评论中所提到的,不要打开新的PHP标记(即<?php
)。相反,只是结束字符串文字(即以"
终止)和concatenate来自变量的值(即数组元素:$row['log_id']
)。
<?php
if($row["time_back"] == '00:00:00')
{ echo "<form action='update.php' method='post'>
<p>
<input type='hidden' name='log_id' value='". $row["log_id"] ."'/>
<input type='time' name='time_back' id='time_back'>
<input type='submit' value='Update'>
</p>
</form>";}
else { echo $row["time_back"]; }
在this playground example中看到它。
答案 2 :(得分:0)
以您想要的格式
<?php
if($row["time_back"] == '00:00:00')
{ echo "<form action='update.php' method='post'>
<p>
<input type='hidden' name='log_id' value='<?php echo $row[\"log_id\"]; ?>'/>
<input type='time' name='time_back' id='time_back'>
<input type='submit' value='Update'>
</p>
</form>";}
else { echo $row["time_back"]; }
?>
你有一个嵌套的PHP语句 - 你仍然在你开始时声明的那个中工作,并且实际上在一个尚未完成的'echo'函数内。将HTML与PHP合并的方法有很多种,但最具可读性的方法之一
是连接运算符.
。
所以,使用这种方法,修正将是在这一行
<input type='hidden' name='log_id' value='<?php echo $row[\"log_id\"]; ?>'/>
你会改为写
<input type='hidden' name='log_id' value='" . $row["log_id"] . "'/>
请注意我们关闭开头引用"
,连接,输出我们的PHP(我们不需要PHP标记或echo,因为我们已经在echo函数中,我们只需要连接字符串我们想要合并到HTML中),然后重新连接并重新打开"
。
希望有所帮助!