我正在尝试将$ _SESSION变量直接设置到标记中,但它不起作用。
以下是我的标签
<td><a href="persons.php?name='.$row['name'].'"> '.$row['name'].'</a></td>
我可以做点什么吗
<td><a href="persons.php?name= $_SESSION['test'] ='.$row['name'].'"> '.$row['name'].'</a></td>
我也尝试过做
<?php
session_start();
$_SESSION['name'] = ".$row['name'].";
然后将$ _SESSION ['name']传递给tag,但我做错了。
<?php
session_start();
if(mysqli_num_rows($sql) == 0){
echo '<tr><td colspan="8">Data not found.</td></tr>';
}else{
$no = 1;
while($row = mysqli_fetch_assoc($sql)){
echo '
<tr>
<td>'.$no.'</td>
<td>'.$row['emp_id'].'</td>
<td><a href="test.php?name='.$row['name'].'"> '.$row['name'].'</a></td>
<td>'.$row['emp_address'].'</td>
<td>'.$row['emp_dob'].'</td>
<td>'.$row['emp_phone'].'</td>
<td>'.$row['emp_dept'].'</td>
<td>';
echo '
$no++;
}
}
?>
基本上我想要存储。$ row ['name']的值。到$ _SESSION变量然后将其传递给标记。
答案 0 :(得分:0)
每个PHP代码必须由<?php
和?>
包围。如果您只回显可变(如您的情况),则可以使用<?=
代替(与<?php echo
相同。
<?php
session_start();
if(mysqli_num_rows($sql) == 0) { ?>
<tr><td colspan="8">Data not found.</td></tr>
<?php } else {
$no = 1;
while($row = mysqli_fetch_assoc($sql)){ ?>
<tr>
<td><?= $no ?></td>
<td><?= $row['emp_id'] ?></td>
<td><a href="test.php?name=<?= $row['name'] ?>"> <?= $row['name'] ?></a></td>
<td><?= $row['emp_address'] ?></td>
<td><?= $row['emp_dob'] ?></td>
<td><?= $row['emp_phone'] ?></td>
<td><?= $row['emp_dept'] ?></td>
<td>
<?php
$no++;
}
}
?>
修改
问题在于您尝试同时分配和输出var,这是一种不好的做法,不应该这样做。首先分配变量,然后回显它。所以:
<?php
$_SESSION['test'] = $row['name'];
?>
<td><a href="persons.php?name='<?= $_SESSION['test'] ?>'"> <?= $_SESSION['test'] ?></a></td>