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?
Annonceindlæg fra Immeo
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?
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.
Præcis hvor skriver du ud på næste side. Mere kode.
<?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 <<< ?>
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>"; ?>
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.
Ret: echo "<option value = $person[$i]"; - til: echo "<option value = '$person[$i]'";
Jaaah! Så virker det. Tusind tak.
Ja, det vil altid hjælpe at vise den korrekt kode fra starten.
Nemlig. Jeg vil i øvrigt anbefale at du bruger $_POST i stedet for $_REQUEST. ... ingen point til mig på denne her. :^)
04. juni 2006 - 12:48
#11
Husk nu at lukke her. Læg selv et svar og tag dine point tilbage.
Vi tilbyder markedets bedste kurser inden for webudvikling