2010-09-28 68 views
0

我有一个名为$tags变量,它只是从数据库字段引用。当用户点击与它给出$tags输出一个链接,我想这些数据将被存储在目标页面上的变量。如何使用PHP在URL中传递变量?

例如,用户在一个todolist.php,包含几个任务。他们可以通过单击转到partslist.php页面的链接查看与此任务相关的部分。在链接,我需要包含$tags数据,因此partslist.php页面上的JavaScript知道什么部分,以突出。

所以我需要知道1)如何在todolist.php的链接I输出$tags2)我怎么收到输出,并将其存储在partslist.php页面上的变量?

我已经做过类似POST和GET命令,但我不能完全摸不着头脑。

回答

4

partslist.php?tags=<?php echo urlencode($tags) ?> ...这是你的要求是什么?或者有多个标签?请举例/代码块/链接

在partslists方面,你可以这样做:

$tags = $_GET['tags']; // You don't need urldecode here, because $_GET is a supergobal and it is already decoded. 
+0

哦,geez ......我想这真的很简单。有时我惊奇自己... – Jared 2010-09-28 14:38:33

+2

+1!提示:使用PHP ['urlencode()'-function](http://php.net/urlencode)来转义'$ tags'变量。这允许你传递任何字符串,不管空格等。 – jwueller 2010-09-28 14:40:10

+1

urlencode是必须的。 +1表示 – Stewie 2010-09-28 14:46:51

2

您在以下两种方式之一传递的URL页面:$ _GET或$ _POST。 $ _ POST需要你有一个表单设置,如:

<form method="post" action="page.php"> 
<input type="text" name="myvariable" value="test"> 
<input type="submit"> 
</form> 

和$ _GET要求您链接到喜欢的页面:

<a href="page.php?myvariable=test">click me</a> 

在第一种情况下,当用户点击提交,页面。 PHP将有权访问从$ _POST数组提交的变量。在这种情况下,$ _POST ['myvariable']将等于“test”;

在第二个,$ _GET ['myvariable']将等于测试。

1

是$标签数组?

如果这样你就可以输出$标签阵列采用以下格式

partslist.php?tags[]=tag1&tags[]=tag2&tags[]=tag3

您是否然后输出$ _GET全球在partslist.php脚本,你最终会得到一个这样的数组:

Array 
(
    [tags] => Array 
     (
      [0] => "tag1" 
      [1] => "tag2" 
      [2] => "tag3" 
     ) 

) 
0

如果他们点击的链接的URL包含URL参数,则这些参数将在目标页面上可用。例如,

// Generate a link like this with PHP 
<a href="somepage.php?name=bob&weight=150"> 

// On somepage.php 
$name = $_GET['name']; 
$weight = $_GET['weight']; 

注意:为了安全起见,您可能希望在将这些数据放入链接之前对其进行加密,并在另一端进行解密。

对于将一些数据传递给Javascript的部分,您可以在Javascript中插入PHP,就像HTML一样。所以,你可以说:

//JS 
var foo = <?PHP echo $foo ?>; 

另外,还可以将数据存储在一个HTML元素:

<div id="foo" data="<?PHP echo $data ?>"> 

...然后抢使用Javascript。