Avatar billede codesmurf Nybegynder
03. februar 2003 - 19:31 Der er 6 kommentarer og
1 løsning

Overførsel af parametre

Hola

Jeg er ved at lave en ip-baseret afstemning på min hjemmeside, men har lidt problemer med at overføre parametre til de næste sider.

Jeg har oprettet en gruppe radiobuttons og skal så ha' resultatet overført til gem.php som står for at gemme ip-adresse (hvordan får jeg forresten fat i den?) samt svar i min db.
<form name="form1" method="post" action="stem.php?value=$value&afst_id=1">

Value kan jo så ændre sig alt efter hvad man svarer men jeg kan jo ikke overføre $value da det bare bliver en tekst-streng der bliver overført. Jeg kan heller ikke bruge name fra radiogruppen da alle 3 buttons har samme name for at de kan "høre sammen".
Så for at summere op:
Hvordan fanger jeg den besøgendes IP-adresse og hvordan overfører jeg dynamiske parametre til efterfølgende .php sider?
Avatar billede htm Nybegynder
03. februar 2003 - 19:34 #1
Besøgendes IP:

echo $_SERVER["REMOTE_ADDR"];

overførsel

brug $_POST[]; til at overføre dem med eks hvis du har et tekstfelt i en form der hedder id vil du kunne tjekke den med
echo $_POST["id"];
Avatar billede taskmgr Nybegynder
03. februar 2003 - 19:39 #2
'Jeg kan heller ikke bruge name fra radiogruppen da alle 3 buttons har samme name for at de kan "høre sammen"'

Du skal bruge deres 'name' til overføre din vars, men hver button skal selvfølgelig have en forskellig value.
Avatar billede codesmurf Nybegynder
03. februar 2003 - 20:45 #3
Det er jo ikke knapper som sådan (og slet ikke tekstfelter), men radiobuttons (de der små runde prikker man kun kan vælge én af). Og for at de skal hænge sammen i en gruppe skal de hedde det samme, dvs. man kan ikke bruge name property'en som man plejer. Og her er det at value ikke virker. action="stem.php?value=$value&afst_id=1"> duer ikke da $value ikke bliver "lavet om" til værdien i den, men bliver overført som tekststrengen $value og det kan jeg jo ikke bruge til noget :( men tak for IP-tingen)

<form name="form1" method="post" action="stem.php?value=$value&afst_id=1">
<table>
  <tr>
    <td>Virker denne afstemning?</td>
  </tr>
  <tr>
    <td><input type="radio" value=a name="afst">Ja da</td>
  </tr>
  <tr>
    <td><input type="radio" value=b name="afst">Nope</td>
  </tr>
  <tr>
    <td><input type="radio" value=c name="afst">Måske</td>
  </tr>
  <tr>
  <TD align=middle><input type="submit" name="submit" value="Stem"></TD> 
  </tr>
</table>
</form>
Avatar billede htm Nybegynder
03. februar 2003 - 20:53 #4
ok det er ud som om du har misforstået lidt her!
Når du har en form bliver værdierne overført som postvariabler og du skal derfor ikke tænke på at putte dem ind i action

Sådan skal din form se ud, hvor du sender den videre til stem.php?afst_id=1:

<form name="form1" method="post" action="stem.php?afst_id=1">
<table>
  <tr>
    <td>Virker denne afstemning?</td>
  </tr>
  <tr>
    <td><input type="radio" value=a name="afst">Ja da</td>
  </tr>
  <tr>
    <td><input type="radio" value=b name="afst">Nope</td>
  </tr>
  <tr>
    <td><input type="radio" value=c name="afst">Måske</td>
  </tr>
  <tr>
  <TD align=middle><input type="submit" name="submit" value="Stem"></TD> 
  </tr>
</table>
</form>

din stem.php ser så sådan ud:

<?php
echo "id = " . $_GET["afst_id"];
echo "<br>";
echo "Der er stemt på: " . $_POST["afst"];
?>

Håber du forstår!

Data postet via en form tjekkes via $_POST[""]
data postet via adresselinien (stem.php?afst_id=1) tjekkes via $_GET[""]
Avatar billede codesmurf Nybegynder
03. februar 2003 - 21:16 #5
Okay, så er den vist ved at være der. Dvs. at jeg kan ændre de tre values til henholdsvis 1, 2 og 3 (i radiogruppen) og så over i min stem.php skrive
UPDATE resultat SET sum = sum+1 WHERE id=$_GET["afst_id"] AND spgid=$_POST["afst"];
(hvor sum er blevet hentet op så jeg har den tidligere værdi som jeg så lægger én til). Med $_POST["afst"] får jeg så automatisk den value som der er blevet valgt i afstemningen?
Avatar billede htm Nybegynder
03. februar 2003 - 21:32 #6
Ja jeg vil dog anbefale dig at definere variablerne før på denne måde:

$afst_id = $_GET["afst_id"];
$afst = $_POST["afst"];

Så er din sætning sådan:

UPDATE resultat SET sum = sum+1 WHERE id=$afst_id AND spgid=$afst;
Avatar billede codesmurf Nybegynder
03. februar 2003 - 22:18 #7
Mange tak, det vil jeg prøve og så får du et par point ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester