我想使用URL传递一些PHP变量。
我尝试了以下代码:
link.php
<html>
<body>
<?php
$a='Link1';
$b='Link2';
echo '<a href="pass.php?link=$a">Link 1</a>';
echo '<br/>';
echo '<a href="pass.php?link=$b">Link 2</a>';
?></body></html>`</pre></code>
pass.php
<pre><code>`<html>
<body>
<?php
if ($_GET['link']==$a)
{
echo "Link 1 Clicked";
} else {
echo "Link 2 Clicked";
}
?></body></html>
单击链接Link1
和Link2
时,显示“链接2已单击”。为什么?
在您的link.php中,您的echo语句必须像这样。
echo '<a href="pass.php?link=' . $a . '>Link 1</a>';
echo '<a href="pass.php?link=' . $b . '">Link 2</a>';
然后在pass.php中,您不能使用$ a,因为它没有用您想要的字符串值初始化。
尽管您可以直接将它与这样的字符串进行比较。
if($_GET['link'] == 'Link1')
另一种方法是使用与link.php相同的方法首先初始化变量。更好的方法是将$ a和$ b变量包含在单个php文件中。然后将其包含在所有要使用该变量的页面中,就像Tim Cooper在其帖子中提到的那样。您也可以将其包含在会话中。
您分别在A和B的href中传递了link=$a
和link=$b
。它们被视为字符串,而不是变量。以下应为您解决此问题:
echo '<a href="pass.php?link=' . $a . '">Link 1</a>';
// and
echo '<a href="pass.php?link=' . $b . '">Link 2</a>';
$a
的值也不包含在pass.php
中。我建议制作一个公共变量文件,并将其包括在所有必要的页面上。
以上所有答案都是正确的,但我注意到一些非常重要的内容。在变量和等号之间留一个空格可能会导致问题。例如,(?variablename =value)
使用此简单方法
$a='Link1';
$b='Link2';
echo "<a href=\"pass.php?link=$a\">Link 1</a>";
echo '<br/>';
echo "<a href=\"pass.php?link=$b\">Link 2</a>";
在skytopia找到了这个解决方案...
位于“ page1.php”或“ page1.html”中
// Send the variables myNumber=1 and myFruit="orange" to the new PHP page...
<a href="page2c.php?myNumber=1&myFruit=orange">Send variables via URL!</a>
//or as I needed it.
<a href='page2c.php?myNumber={$row[0]}&myFruit={$row[1]}'>Send variables</a>
INSIDE“ page2c.php”
<?php
// Retrieve the URL variables (using PHP).
$num = $_GET['myNumber'];
$fruit = $_GET['myFruit'];
echo "Number: ".$num." Fruit: ".$fruit;
?>
只需将$a='Link1';
$b='Link2';
放在pass.php中,您将得到答案并在link.php中加双引号
HERE:echo '<a href="pass.php?link=' . $a . '">Link 1</a>';
<?php
echo" <a style='float: right;' class='btn btn-primary' href='send_request.php?id=$id'>Send Request</a>";
?>