Hej
Hur skickar man variabler med i addressen: typ:
href="sida.php?variabel=något&variabel2=något
och hur tar man imot det och får ut vad som står där sen på sida.php ???
Tack!
10 svar · 365 visningar · startad av Lundb3rg
Hej
Hur skickar man variabler med i addressen: typ:
href="sida.php?variabel=något&variabel2=något
och hur tar man imot det och får ut vad som står där sen på sida.php ???
Tack!
Du skickar dom:
<a href="sida.php?variabel=något&variabel2=något">Skicka</a>
Du tar emot på sida.php :
<?php
echo $_GET['variabel'];
echo $_GET['variabel2'];
?>
Om du har en tidigare version av PHP än 4.1.0, byt ut $_GET mot $HTTP_GET_VARS.
Skulle register_globals=on i din PHP.INI så kan du också använda:
<?php
echo $variabel;
echo $variabel2;
?>
Det tackar vi för =)
Det funkar inte.
Så här är det, jag använder frames och länken har jag i en frame motagaren har jag i en annan, men när jag trycker på länken:
<a href="inlove_main.php?ID=<?=$rad[id]?>" target="inlove_main">
så står det fortfarande bara:
http://localhost/hello/inlove.php
i address combon, vilket är php filen med frames uppbyggnaden.
FAST om jag kollar i statusraden när jag håller över länken så står det: inlove_main.php?ID=1
Det jag har som skall ta imot variablen är:
<?
$conn =@mysql_connect()
or die ("Can't connect to database.");
$database = mysql_select_db("hello");
?>
<div id="1" style="position:absolute; left:7px; top:7px; z-index:1">
<img src="gfx/inlove/main_head.gif"><br><img src="gfx/px.gif" width="1" height="7"><br>
<?
if ($_get['id']) {
$sql = "SELECT * FROM happenings WHERE id = '$_get['ID']'";
$result = mysql_query("$sql");
$rad = mysql_fetch_array($result)
?>
<font class="newshead"><?echo $rad[headline]?> </font><br><font class="inlovetime"><?echo date("M jS, Y",strtotime($rad[date]));?> <?echo $rad[smallword]?> <?echo $rad[situated]?> </font><br><img src="gfx/px.gif" width="1" height="7"><br>
<font class="normal"><?echo $rad[message]?> </font>
<? }
mysql_close($conn) ?>
Får felmedelandet:
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in D:\Program\Apache Group\Apache2\htdocs\hello\inlove_main.php on line 19
Går det inte att skicka så eller är det något jag måste tillåta eller nått?
Jag ändrade sql satsen till:
$sql = "SELECT * FROM happenings WHERE id = '". $_GET['ID'] ."'";
då försvann felmedelandet, men fortfarande inget som visas på inlove_main.php sidan..
Nu ändrade jag länken från:
<a href="inlove_main.php?ID=<?=$rad[id]?>" target="inlove_main">
till:
<a href="inlove.php?ID=<?=$rad[id]?>" target="_top">
Nu kommer ID och nummer upp i addressen men fortfarande inget i inlove_main.php , är precis som om den ej hittar variablen eller nått, jag vet ej.
För felsökning:
1. Lägg till echo $_GET['ID']."<br>"; överst på din sida.
2. Efter satsen $sql = "SELECT .... , lägg till echo $sql."<br>"; på raden under.
Näpp, kommer inte fram något, .....
hmmmmmmmmmssss....
För felsökning:
Lägg till
echo "1: ".$HTTP_GET_VARS['ID']."<br>";
echo "2: ".$ID."<br>";
överst på din sida.
Förutsättning: ?ID=något finns i URL
Nej det kommer inte fram något, men addressen i addressfältet är: http://localhost/hello/inlove.php?ID=1
fast sidan som jag lagt det du skrev i är iofs inlove-main.php för jag skickade variablerna till inlove.php för om jag skickade dom till inlove-main.php så dök dom inte upp i address fältet :/ ....
*fattar inte*
Nu ska vi se om jag förstod rätt.
Du har ett frameset som heter inlove.php. Som exempel kan vi anta att det har följande innehåll:
<frameset rows="100, *">
<frame src="menu.html" name="menu">
<frame src="inlove-main.php" name="inlove-main">
</frameset>
Länkar du då <a href="inlove-main.php?ID=1" target="inlove-main">Länk</a> så kan du i filen inlove-main.php ta emot variabeln med $_GET['ID'].
Dock kommer inget att ses i adressfältet.
Länkar du <a href="inlove.php?ID=1" target="top">Länk</a> så kommer det att synas i adressfältet, men eftersom filen inlove-main.php inte har fått något skickat till sig, så kommer det inte att hända något där. Vill du att det även ska hända något i inlove-main.php får du isåfall skriva om ditt frameset till:
<frameset rows="100, *">
<frame src="menu.html" name="menu">
<frame src="inlove-main.php?<?=$_SERVER['QUERY_STRING'] ?>" name="inlove-main">
</frameset>
BRASKLAPP
Använder du en PHP-version tidigare än 4.1.0 så byter du ut $_GET och $_SERVER mot $HTTP_GET_VARS och $HTTP_SERVER_VARS.