0

我面临的问题是只有'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>';
}
?>
4

4 回答 4

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
}
?>
于 2013-10-30T01:15:36.610 回答
0

在 case 之后使用HEREDOC语法或结束 php 解释:

switch ($a) {
case "foo":  ?>
   bla bla html <?php echo $a ?> 
<?php break;
}
于 2013-10-29T23:36:08.117 回答
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 标记中。

于 2013-10-29T23:37:53.337 回答
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;
    }
}
于 2013-10-29T23:55:22.517 回答