0
 <?php if(isset($_SESSION['guest2First']))
echo '<tr><td>';
echo '<input type="text" name="guest2Ticket" id="guest2Ticket" onblur="isTicketNumber(this)"  size ="22"/>';
echo '</td><td>';
echo $first["guest2First"] , ' ', $middle["guest2Middle"] , ' ',$last["guest2Last"];
echo '</td></tr>'?>

我有一个表单,它使用 $_SESSION 变量来使用上面的代码填写一些内容。

我需要做的是

  1. 检查是否设置了变量
  2. 如果它回显出一个包含两个单元格的新表格行
  3. 在第一个单元格中回显一个输入框
  4. 在第二个单元格中回显 3 个变量,每个变量之间有一个空格

除了 4 号外,一切似乎都运行良好。第二个单元格中没有任何内容。

我确定

echo $first["guest2First"] , ' ', $middle["guest2Middle"] , ' ',$last["guest2Last"];

是问题所在。如何修复此语法以达到我想要的结果?

4

2 回答 2

1

这里有几个更好的语法选项:

<?php if(isset($_SESSION['guest2First'])){

$name = $_SESSION["guest2First"].
        (isset($_SESSION["guest2Middle"])?' '.$_SESSION["guest2Middle"]:null).
        (isset($_SESSION["guest2Last"])?' '.$_SESSION["guest2Last"]:null);
?>
<tr>
    <td><input type="text" name="guest2Ticket" id="guest2Ticket" onblur="isTicketNumber(this);" size ="22"/></td>
    <td><?php echo $name;?></td>
</tr>
<?php }?>

或者

<?php 
if(isset($_SESSION['guest2First'])){
    echo '<tr>',
         '<td><input type="text" name="guest2Ticket" id="guest2Ticket" onblur="isTicketNumber(this);" size ="22"/></td>',
         '<td>'.$name.'</td>',
         '</tr>';
}
?>
于 2013-02-17T11:05:59.787 回答
1

我认为您混合了 var 名称并表示 $_SESSION,而不是 $first、$middle、$last

<?php if(isset($_SESSION['guest2First']))
echo '<tr><td>';
echo '<input type="text" name="guest2Ticket" id="guest2Ticket" onblur="isTicketNumber(this)"  size ="22"/>';
echo '</td><td>';
echo $_SESSION["guest2First"] , ' ', $_SESSION["guest2Middle"] , ' ',$_SESSION["guest2Last"];
echo '</td></tr>'?>
于 2013-02-17T11:07:12.657 回答