/ Forside/ Teknologi / Udvikling / PHP / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Problem med variabel i et link
Fra : icebobo
Vist : 501 gange
100 point
Dato : 28-04-03 11:50

Hejsa
Jeg har et lille problem med at overføre en variabel fra et textfelt i en form til en ny side.
Når man indtaster noget i textfelterne kommer det ikke med over i min nye side.
Problemet kan jo godt nok løses med en if sætning og php_self men der må da være en mere rigtig/nemmere måde.

<?
echo "<form method=POST action=nyside.php?test1=$T1&test2=$T2>";
echo "<p><input type=text name=T1 size=20></p>";
echo "<p><input type=text name=T2 size=20></p>";
echo "<p><input type=submit value=Send></p>";
echo "</form>";
?>

 
 
Kommentar
Fra : Jin2k


Dato : 28-04-03 22:11

Hej.

Kan problemet ikke være at du sender GET-data fra en form der er sat til POST?

"<form method=POST action=nyside.php>" <- Burde være tilstrækkeligt.

Udover det synes jeg det virker lidt underligt at bruge to variabler til det samme.
Du kan jo bare hente værdierne med $T1 eller $_POST["T1"]. (Og det tilsvarende for T2 naturligvis)


Kommentar
Fra : icebobo


Dato : 29-04-03 09:22

Hej Jin2k

Beklager men jeg fatter ikke rigtigt det du skriver der.
Du mener at man kan nøjes med at skrive "<form method=POST action=nyside.php>" og så samtidig få variabelerne T1 og T2 med over i den nye side?
Mht. de 2 variabler bliver de ikke brugt til det samme, de det ene skal bruges til en søgetekst og den anden til en dato.

Accepteret svar
Fra : Jin2k

Modtaget 100 point
Dato : 29-04-03 10:11

I PHP (og andre server side scripting sprog) kan du overføre data mellem sider på flere måder.
De to mest anvendte til forms er GET og POST (til andre formål benyttes f. eks. SESSION & COOKIE, men nok om det).
GET variabler bliver sendt gennem URL'en, hvor POST skal sendes gennem en form.
Elsempel på GET:
http://www.dinside.dk/ditdokument.php?variabel1=vaerdi1&variabel2=vaerdi2
Afhængigt af hvad du laver kan det ene være bedre end det andet, men brugen af begge metoder på en gang er ikke noget jeg vil foreslå og det er også sjældent nødvendigt. I METHOD i FORM-taget bestemmer du hvilken metode der skal bruges når data skal sendes videre. Du har valgt at bruge POST, men prøver at sende GET-data sammen med. Udover det så regner jeg med at T1 og T2 ikke i forvejen har værdier...?
Din linie:
echo "<form method=POST action=nyside.php?test1=$T1&test2=$T2>";
prøver at få værdierne af to variabler "T1" og "T2", men disse værdier er først tilgængelige efter at brugeren har klikket på Send-knappen.

Da al den her snak måske ikke hjælper dig så meget vil jeg bare give dig et eksempel du kan bruge med det samme:

[side1.php]
<html>
<body>
<form method=POST action=side2.php>
<p><input type=text name=T1 size=20></p>
<p><input type=text name=T2 size=20></p>
<p><input type=submit value=Send></p>
</form>
</body>
</html>
[/side1.php]
[side2.php]
<?php
echo "Værdien af variablen T1 er: ".$_POST["T1"];
echo "<br>";
echo "Værdien af variablen T2 er: ".$_POST["T2"];
?>
[/side2.php]

Skriv endelig hvis du har nogen spørgsmål eller hvis det er mig der har misforstået alt det her...

Kommentar
Fra : icebobo


Dato : 29-04-03 13:35

Hej igen
Takker, det var lige d der skulle til, den bog jeg har beskriver d bare forkert :)

Godkendelse af svar
Fra : icebobo


Dato : 29-04-03 13:41

Tak for svaret Jin2k.
                        

Kommentar
Fra : shady


Dato : 29-04-03 13:45

Som Jin2k skriver, så er det jo fordi du bruger to forskellige request typer.
For at forstå lidt mere omkring foruddefinerede variabler som post, get, request og så videre vil jeg anbefale dig at du kigger på http://www.php.net/manual/en/language.variables.predefined.php og http://www.php.net/manual/en/reserved.variables.php for at forstå og bruge de nye reservervede variabler!

Når du sender dine variabler igennem en form, så er den mest almindelig metode at bruge POST.
altså skal din form kode så således ud:
Kode
<?php
echo '<form method="POST" action="nyside.php">
<p><input type="text" name="t1" size="20"></p>
<p><input type="text" name="t2" size="20"></p>
<p><input type="submit" value="Send"></p>
</form>';
?>

En god koder husker desuden også den korrekte syntaks med anførselstegn i sine HTML koder, men det var bare et side spring! :)

Når du så henter variablerne t1 og t2 i din nyside.php skal koden se således ud:
Kode
<?php

echo '
Variabel værdi for t1: '.$_POST['t1'].'<p>
Variabel værdi for t2: '.$_POST['t2'];

?>


Så kan man jo gøre det lidt mere sikkert ved at brige lidt if sætninger og så'n...
Kode
<?php

if (!empty($_POST['t1']) && !empty($_POST ['t2'])) {
echo '
Variabel værdi for t1: '.$_POST['t1'].'<p>
Variabel værdi for t2: '.$_POST['t2'];

} elseif (!empty($_POST['t1']) && empty($_POST ['t2'])) {

echo 'Variabel værdi for t1: '.$_POST['t1'];

} elseif (empty($_POST['t1']) && !empty($_POST ['t2'])) {

echo 'Variabel værdi for t2: '.$_POST['t2'];

} elseif (empty($_POST['t1']) && empty($_POST ['t2'])) {

echo 'Ingen er felterne er udfyldt...';

}

?>


Men det er jo så igen om man vil have det simpelt eller sikkert... :)

Håber du blev klogere...



Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177579
Tips : 31968
Nyheder : 719565
Indlæg : 6409073
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste