2010-09-28 47 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。