我面临的问题是只有'rr_pos_1'标签
<?php if (isset($_POST['rr_pos_1']) ? $_POST['rr_pos_1'] : null) echo "$rr_pos_1"; ?>
由于撇号(')而输出php错误。无论如何我可以通过使用下面相同的打印方法来避免这个错误吗?
这是我的PHP代码:
<?php
switch (isset($_POST['chk']) ? $_POST['chk'] : null){
case 'Rigid Rail':
echo '
<table>
<tr>
<td>Notes & Comments: <?php if (isset($_POST['rr_pos_1']) ? $_POST['rr_pos_1'] : null) echo "$rr_pos_1"; ?></th>
</tr>
</table>';
}
?>
答案 0 :(得分:0)
在案例后使用HEREDOC语法或结束php解释:
switch ($a) {
case "foo": ?>
bla bla html <?php echo $a ?>
<?php break;
}
答案 1 :(得分:0)
<?php switch (isset($_POST['chk']) ? $_POST['chk'] : null){
case 'Rigid Rail': ?>
<table>
<tr>
<td>Notes & Comments:
<?php echo (isset($_POST['rr_pos_1'])) ? $_POST['rr_pos_1'] : null; ?>
</td>
</tr>
</table>
<?php break; }?>
是的,只是不要把它放在PHP标签内。
答案 2 :(得分:0)
您也可以稍微编辑自己的代码;
我希望自己稍微编辑代码,因为我认为检查应该在切换之前完成并检查它是否存在
<?php
// Check the value exists
$value = (array_key_exists('chk', $_POST) && is_string($_POST['chk']) && !empty($_POST['chk']))
? $_POST['chk'] : FALSE ;
// Check it passed and holds a value
if ($value)
{
// Now you know it exists, use the switch
switch ($value)
{
case "Rigid Rail":
echo '
<table>
<tr>
<td>
Notes & Comments:
' . ( isset($_POST['rr_pos_1']) ? $_POST['rr_pos_1'] : '' ) . '
</td>
</tr>
</table>';
break;
}
}
答案 3 :(得分:0)
我认为isset
不需要三元运算符<?php
switch (isset($_POST['chk'])){
case 'Rigid Rail':
?>
<table>
<tr>
<td>Notes & Comments: <?php if (isset($_POST['rr_pos_1'])) echo "$rr_pos_1"; ?></td>
</tr>
</table>
<?php
}
?>