Avatar billede imperten Nybegynder
26. maj 2006 - 23:26 Der er 11 kommentarer

Tegn efter mellemrum i Select Form

echo "<form action='foraar.php' method='post'>";
    echo "<select name='person_valg'>";
      echo "<option value = 'person 1'> Person 1 </option>";
      echo "<option value = 'person 2'";
        if ($_REQUEST['person_valg'] == 'person 2') {
          echo " selected";
        }
      echo "> Person 2 </option>";
    echo "</select>";
  echo "</form>";

Mit problem er, at REQUEST kun medtager det valgte frem til mellemrummet, altså ikke får 1 eller 2 med.

Hvordan skal det fikses?
Avatar billede erikjacobsen Ekspert
26. maj 2006 - 23:28 #1
Din request skal nok få mellemrummet med. Men det kan være at du udskriver det på næste side, så det går galt. Må vi se?
Avatar billede imperten Nybegynder
26. maj 2006 - 23:43 #2
action kalder samme side, foraar.php, og skal vise forskellige ting, om man har valgt person 1 eller 2.

Men hvis jeg indsætter et: echo $_REQUIST['person_valg']; skriver den blot: person

Om mellemrummet er med eller ej, er svært at se, men under alle omstændigheder får den ikke tallet med. Det, synes jeg, er mystisk.
Avatar billede erikjacobsen Ekspert
26. maj 2006 - 23:56 #3
Præcis hvor skriver du ud på næste side. Mere kode.
Avatar billede imperten Nybegynder
27. maj 2006 - 08:30 #4
<?php
  session_start();
  $p = $_REQUEST['person_valg'];
    echo $p; # test!
  if ($p == 'person 1') {
    >>> en masse linjer med tabeller m.m. <<<
  } elseif ($p == 'person 2') {
    >>> en masse andre linjer med tabeller m.m. <<<
  }

  >>> Her kommer så det tidligere viste <<<

?>
Avatar billede erikjacobsen Ekspert
27. maj 2006 - 08:45 #5
Ja, mere kode. Det du viser er der jo ikke noget i vejen med. Derfor kan vi ikke finde fejl. Følgende på en fil, foraar.php, giver det forventede:

<?php
  session_start();
  $p = $_REQUEST['person_valg'];
    echo $p; # test!
  if ($p == 'person 1') {
    print ">>> en masse linjer med tabeller m.m. <<<";
  } elseif ($p == 'person 2') {
    print ">>> en masse andre linjer med tabeller m.m. <<<";
  }


  echo "<form action='foraar.php' method='post'>";
    echo "<select name='person_valg'>";
      echo "<option value = 'person 1'> Person 1 </option>";
      echo "<option value = 'person 2'";
        if ($_REQUEST['person_valg'] == 'person 2') {
          echo " selected";
        }
      echo "> Person 2 </option>";
    echo "</select>";
  echo "<input type=\"submit\">";
  echo "</form>";
?>
Avatar billede imperten Nybegynder
27. maj 2006 - 09:36 #6
Okay, så må det ligge i variabelnavnet. Rent faktisk styrer jeg det på denne måde:

  echo "<form action='foraar.php' method='post'>";
    echo "<select name='person_valg'>";
      for ($i = 0; $i < $antal_personer; $i++) {
        echo "<option value = $person[$i]";
          if ($_REQUEST['person_valg'] == $person[$i]) {
            echo " selected";
          }
        echo "> $person[$i] </option>";
      }
    echo "</select>";
  echo "<input type=\"submit\">";
  echo "</form>";

Hvor $person[0] = 'Person 1', $person[1] = 'Person 2', osv.
Avatar billede nielle Nybegynder
27. maj 2006 - 09:48 #7
Ret:

echo "<option value = $person[$i]";

- til:

echo "<option value = '$person[$i]'";
Avatar billede imperten Nybegynder
27. maj 2006 - 09:59 #8
Jaaah! Så virker det. Tusind tak.
Avatar billede erikjacobsen Ekspert
27. maj 2006 - 10:02 #9
Ja, det vil altid hjælpe at vise den korrekt kode fra starten.
Avatar billede nielle Nybegynder
27. maj 2006 - 10:03 #10
Nemlig.

Jeg vil i øvrigt anbefale at du bruger $_POST i stedet for $_REQUEST.

... ingen point til mig på denne her. :^)
Avatar billede nielle Nybegynder
04. juni 2006 - 12:48 #11
Husk nu at lukke her.

Læg selv et svar og tag dine point tilbage.
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