Avatar billede human Nybegynder
15. november 2003 - 15:59 Der er 27 kommentarer og
1 løsning

Få variabel ind i en URL.

<form method='POST' action='login_success.php?action=AddDevice&device=<? $type ?>'>
  <select size='1'>
  <option>Choose device</option>´
<?
#ikke done
    $query = "SELECT device_type FROM devices";
    $result = mysql_query($query);
    while($row = mysql_fetch_array($result)) {
    $type = $row['device_type'];
print
  "
  <option>$type</option>
  ";
  }
  ?>
  </select>&nbsp;&nbsp;&nbsp;
  <input type='submit' value='Add device' name='submit' class='inputbutton'>
</form>

Idéen med det er, at option skal udskrives en gang for hver værdi den bliver trukket ud, det virker sådan set også fint nok. Er der fx 2 værdien der hedder "hej" og "davs" Kommer den til at stå som en option. Men når jeg vælger det, så ved action='login_success.php?action=AddDevice&device=<? $type ?>'>, ikke hvilken værdi der er valgt, hvordan er det lige jeg får $type derop?
Avatar billede Slettet bruger
15. november 2003 - 16:03 #1
Det er vist:

<?= $type ?>
Avatar billede drinkit Praktikant
15. november 2003 - 16:08 #2
action='login_success.php?action=AddDevice&device=<?=$type?>'>
Prøv det!?
Avatar billede human Nybegynder
15. november 2003 - 16:15 #3
Er allerede prøvet. Virker heller ikke.
Avatar billede drinkit Praktikant
15. november 2003 - 16:19 #4
<form method='POST' action='login_success.php?action=AddDevice&device=<?=$type?>'>
<select size='1'>
<option>Choose device</option>
<?
$query = "SELECT device_type FROM devices";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)) {
$type = $row['device_type'];
print "<option>$type</option>";
}
?>
</select>&nbsp;&nbsp;&nbsp;
<input type='submit' value='Add device' name='submit' class='inputbutton'>
</form>

Virker det ikke ?
Avatar billede drinkit Praktikant
15. november 2003 - 16:21 #5
Prøv også:
<form method='get' action='login_success.php?action=AddDevice&device=<?=$type?>'>
<select size='1'>
<option>Choose device</option>
<?
$query = "SELECT device_type FROM devices";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)) {
$type = $row['device_type'];
print "<option>$type</option>";
}
?>
</select>&nbsp;&nbsp;&nbsp;
<input type='submit' value='Add device' name='submit' class='inputbutton'>
</form>
Avatar billede tjens Nybegynder
15. november 2003 - 22:42 #6
Du kan lave 'hidden' fields i din formular i stedet:

<input type="hidden" name="action" value="AddDevice">
<input type="hidden" name="device" value="<?php echo $type?>">
Avatar billede human Nybegynder
16. november 2003 - 14:19 #7
tjens: virkede heller ikke.
Avatar billede jensgram Nybegynder
16. november 2003 - 14:21 #8
human > hidden-felter vil jo være at finde i $_POST-array'et, hvis du benytter method="post"...
Avatar billede human Nybegynder
16. november 2003 - 14:32 #9
Så hvordan er det du siger det skal se ud?
Avatar billede human Nybegynder
16. november 2003 - 15:49 #10
Måden jeg forsøger at gøre det på er sådan her:

<form method='POST' action='login_success.php?action=AddDevice&device=<?= $type ?>'>
  <select size='1'>
  <option>Choose device</option>´
<?
#ikke done
    $query = "SELECT device_type FROM devices";
    $result = mysql_query($query);
    while($row = mysql_fetch_array($result)) {
    $type = $row['device_type'];
print
  "
  <option>$type</option>
  ";
  }
  ?>
  </select>&nbsp;&nbsp;&nbsp;
  <input type='submit' value='Add device' name='submit' class='inputbutton'>
</form>

<?
if(isset($_GET['device']) && $_GET['device'] == 'X8') {

}

Hvor X8 er værdien af et af felterne der kan vælges i option. Jeg kender altid værdien af felterne.

Men det virker åbenbart ikke, hvordan skal det så se ud?
Avatar billede detox Nybegynder
16. november 2003 - 16:16 #11
Ja, det tror jeg godt jeg kan hjælpe med. Lige 2 sek.
Avatar billede detox Nybegynder
16. november 2003 - 16:38 #12
Du kan give select et navn:

<select size='1' name='valg'>

og option en value:

<option value='$type'>$type</option>

submit kan du lige fjerne mellemrum:

<input type='submit' value='AddDevice' name='submit' class='inputbutton'>

og action:

<form method='POST' action='login_success.php'>
Avatar billede detox Nybegynder
16. november 2003 - 16:43 #13
Så kan du hente værdien i login_success.php' med:

if (isset($_POST['submit'] && $_POST['submit'] == "AddDevice") {
  $type = $_POST['valg'];
}
Avatar billede human Nybegynder
16. november 2003 - 16:59 #14
Virker ikke. Hvis jeg gør sådan her:

<form method='POST' action='login_success.php'>
  <select size='1' name="choose">
  <option>Choose device</option>
  <?
    $query = "SELECT device_type FROM devices";
    $result = mysql_query($query);
    while($row = mysql_fetch_array($result)) {
    $type = $row['device_type'];
print
  "
  <option value='$type'>$type</option>
  ";
  }
  ?>
  </select>&nbsp;&nbsp;&nbsp;
  <input type='submit' value='AddDevice' name='submit' class='inputbutton'>
</form>

<?
if(isset($_POST['submit']) && $_POST['submit'] == "AddDevice") {
  $type = $_POST['valg'];
//Her bliver der vist en form

}

Så går den tilbage til login_success.php og der bliver ikke vist noget. Måske skal det siges, at dropdown'en er på login_success.php. Så der bliver aldrig skiftet side som sådan.
Avatar billede human Nybegynder
16. november 2003 - 17:00 #15
2 sec. Har lige set en fejl fra min side.
Avatar billede detox Nybegynder
16. november 2003 - 17:04 #16
Nu har du jo ændret select navnet til: 'choose', så det skal være:

$type = $_POST['choose'];
Avatar billede human Nybegynder
16. november 2003 - 17:05 #17
Yea, det jeg lige så. Men selvom jeg ændrede det tilbage så det var valg begge steder, går den tilbage til login_success.php.
Avatar billede detox Nybegynder
16. november 2003 - 17:10 #18
men 'login_success.php' er jo osse din action, så det er vel meningen. Måske du skulle ændre opbugning til:

<?
if(isset($_POST['submit']) && $_POST['submit'] == "AddDevice") {
  $type = $_POST['valg'];
//Her bliver der vist en form

} else {
?>
<form method='POST' action='login_success.php'>
  <select size='1' name="choose">
  <option>Choose device</option>
  <?
    $query = "SELECT device_type FROM devices";
    $result = mysql_query($query);
    while($row = mysql_fetch_array($result)) {
    $type = $row['device_type'];
print
  "
  <option value='$type'>$type</option>
  ";
  }
  ?>
  </select>&nbsp;&nbsp;&nbsp;
  <input type='submit' value='AddDevice' name='submit' class='inputbutton'>
</form>

<?
}
?>
Avatar billede detox Nybegynder
16. november 2003 - 17:11 #19
selvfølgelig med choose = valg
Avatar billede human Nybegynder
16. november 2003 - 17:11 #20
Kigger på det.
Avatar billede human Nybegynder
16. november 2003 - 20:28 #21
Det virker sådan set, men hvis der er andre resultater end X8, så kommer formen alligevel udskrevet. Det skal være sådan, hvis du vælger andet end X8, så bliver der ikke vist noget.
Avatar billede detox Nybegynder
16. november 2003 - 20:34 #22
Så kunne du bytte:

if(isset($_POST['submit']) && $_POST['submit'] == "AddDevice") {

ud med:

if(isset($_POST['valg']) && $_POST['valg'] == "X8") {
Avatar billede detox Nybegynder
16. november 2003 - 20:55 #23
Men hvad skal der egentlig så ske, hvis man vælger noget andet?
Avatar billede human Nybegynder
17. november 2003 - 09:06 #24
PÅ det tidspunkt hvor der bliver mulighed for at vælge noget andet, skal der bare vises en anden form. Gør mig bare klar til den tid :o)
Avatar billede detox Nybegynder
17. november 2003 - 18:34 #25
Ok, kan du få det til at fungere?
Avatar billede human Nybegynder
18. november 2003 - 08:25 #26
Det kigger jeg på senere i dag. SKal lige have adgang til min egen comp først.
Avatar billede human Nybegynder
22. november 2003 - 13:35 #27
Smid et svar detox :)
Avatar billede detox Nybegynder
23. november 2003 - 00:11 #28
Jeps c",)
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