如何直接从html标签分配会话变量?

时间:2018-02-27 21:54:14

标签: php html html5 session-variables

我正在尝试将$ _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变量然后将其传递给标记。

1 个答案:

答案 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>