如何通过'a href'分配$ _GET值

时间:2016-04-25 10:53:55

标签: php

这是我到目前为止所做的,但未分配$ _GET ['c_id'](网址如下所示http://localhost/srs_stuff.php?c_id= 结果肯定存储在$ r变量中,因为c_name通常显示为具有我想要名称的可点击链接。

foreach ($results as $r) {
    echo "<a href='srs_stuff.php?c_id='" . $r['c_id'] . ">" . $r['c_name'] . "</a></br>";
}   

更好的解决方案是,在重定向到新页面之前,c_id将在SESSION变量中设置。这可能吗?

2 个答案:

答案 0 :(得分:1)

 <a href='srs_stuff.php?c_id='" . $r['c_id'] 

HTML属性值可以由"'分隔。您正在使用'

您的href值以srs_开头,一直持续到下一个'

下一个'id='之前 $ r [&#39; c_id&#39;]值。

将您的属性分隔符放在正确的位置(并使用HTML validator,这会发现这样的错误。)

更好的是,不要通过将字符串混合在一起然后通过将更多字符串拼接在一起来生成HTML来生成URL。

<?php
    $query_string = http_build_query(c_id => $r['c_id']);
    $url = "srs_stuff.php?" . $query_string;
    $html_safe_url = htmlspecialchars($url);
    $html_safe_name = htmlspecialchars($r['c_name']);
?>
    <a href="<?php echo $html_safe_url; ?>">
        <?php echo $html_safe_name; ?>
    </a>
    <br>

答案 1 :(得分:0)

在分配值之前,您正在关闭href属性。

更正后的代码:

<?php
$r['c_id'] = 234;
$r['c_name'] = 'Developer';
echo "<a href='srs_stuff.php?c_id=" . $r['c_id'] . "'>" . $r['c_name'] . "</a></br>";
?>

生成HTML输出(源代码):

<a href='srs_stuff.php?c_id=234'>Developer</a></br>