2010-09-28 10 views
0

J'ai une variable appelée $tags, qui fait simplement référence à un champ de base de données. Lorsque l'utilisateur clique sur un lien avec la sortie $tags donnée, je veux que les données soient stockées dans une variable sur la page cible.Comment transmettre une variable dans une URL en utilisant PHP?

Par exemple, l'utilisateur est sur un todolist.php, qui contient plusieurs tâches. Ils peuvent voir les parties associées à cette tâche en cliquant sur un lien qui va à une page partslist.php. Dans le lien, j'ai besoin de contenir les données $tags, donc javascript sur la page partslist.php sait quelle partie mettre en évidence.

donc je dois savoir 1) comment puis-je sortie $tags dans le lien de todolist.php et 2) comment puis-je recevoir que la production et le stocker sur une variable sur la page partslist.php?

J'ai fait des commandes POST et GET similaires, mais je n'arrive pas à comprendre cela.

Répondre

4

partslist.php?tags=<?php echo urlencode($tags) ?> .. c'est ce que vous demandez? Ou il y a plusieurs tags? S'il vous plaît donner des exemples/blocs de code/liens

Du côté de partslists vous pouvez le faire:

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

oh geez ... Je pense que c'est vraiment aussi simple. Parfois je m'étonne ... – Jared

+2

+1! Conseil: utilisez la fonction ['urlencode()' de la fonction PHP [http://php.net/urlencode] pour échapper la variable '$ tags'. Cela vous permet de passer n'importe quelle chaîne, quels que soient les espaces, etc. – jwueller

+1

urlencode est un must. +1 pour cet – Stewie

2

Vous passez les URL des pages dans l'une des deux façons suivantes: $ _GET ou $ _POST. $ _POST exige que vous avez une configuration de forme comme:

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

Et $ _GET exige que vous un lien vers la page comme:

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

Dans le premier scénario, lorsque l'utilisateur clique soumettre, page. php aura accès aux variables soumises à partir du tableau $ _POST. Dans ce cas, $ _POST ['myvariable'] sera égal à "test";

Dans la seconde, $ _GET ['myvariable'] sera égal au test.

1

est $ tags un tableau?

Si oui, vous pouvez sortir le tableau des balises $ dans le format suivant

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

si alors vous sortie le global $ _GET dans le script partslist.php vous finiriez avec un tableau comme celui-ci :

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

) 
0

Si l'URL du lien sur lequel ils cliquent contient des paramètres d'URL, ceux-ci seront disponibles sur la page cible. Par exemple,

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

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

Note: pour plus de sécurité, vous pouvez vouloir chiffrer ces données avant de le mettre dans le lien, et décrypter à l'autre bout.

Pour la partie où vous transmettez des données à Javascript, vous pouvez interpoler PHP dans votre Javascript le même que votre HTML.Donc, on pourrait dire:

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

Alternativement, vous pouvez stocker des données dans un élément HTML:

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

... puis saisir qu'utiliser Javascript.

Questions connexes