<input type="checkbox" name="metartaf_activated" value="1" <?php if($RSobjMetarTaf['showmetartaf'] == "1"){echo " CHECKED";}?>>
Detta lite nerkortade kodstycke lyckades jag knåpa ihop efter att ha sökt runt lite. Det kan vara ett alternativ...
5 svar · 336 visningar · startad av lillebror
Jag håller på och skapar ett formulär i PHP. Nu har jag en liten fråga anggående hanteringen av s.k. checkbox.
I ett fält i databasen lagrar jag antingen en 1 eller en 0. För att att läsa in denna information genom en SQL-sats till formuläret har jag efter ett visst tags funderande gjort på följande sätt:
<?php $RSobjMetarTaf = showMetarTafSetting($_SESSION["uid"]); ?>
<td width="75%" style="background-color: #fff; padding: 5px 0 5px 15px">
<?php if($RSobjMetarTaf['showmetartaf'] == 1) { ?>
<input type="checkbox" name="metartaf_activated" value="1" checked>
<?php } else { ?>
<input type="checkbox" name="metartaf_activated" value="0">
<?php } ?>
</td>
Är detta rätt sätt för att avgöra huruvida en checkbox skall vara checked (1) eller unchecked (0)?
Vidare när man skickar informationen med ett formulär, är det bästa sättet att göra det genom POST? Har läst att GET är mindre säkert då man skickar det genom en s.k. querystring?
Slutligen, läser man av checkboxvariabeln genom detta sätt?
$metartaf['metartaf_activated'] = trim($_POST['metartaf_activated']);
:)
<input type="checkbox" name="metartaf_activated" value="1" <?php if($RSobjMetarTaf['showmetartaf'] == "1"){echo " CHECKED";}?>>
Detta lite nerkortade kodstycke lyckades jag knåpa ihop efter att ha sökt runt lite. Det kan vara ett alternativ...
Först hade jag en tanke om att man kunde ange att när en checkbox är checked så har den värdet 1 och vid unchecked en 0. Nu gjorde jag iaf på följande sätt för att läsa av den när den inte är ikryssad:
if($metartaf['metartaf_activated'] == '') {$metartaf['metartaf_activated'] = 0;}
Är det rätt sätt?
Så här skulle jag göra:
if ($RSobjMetarTaf['showmetartaf'] == "1")
$checked = "checked";
else $checked = "";
//i formuläret
<input type="checkbox" name="metartaf_activated" value="1" $checked>
Om du inte är i php-mode i formuläret blir det:
<?php
if ($RSobjMetarTaf['showmetartaf'] == "1")
$checked = "checked";
else $checked = "";
?>
//i formuläret
<input type="checkbox" name="metartaf_activated" value="1" <?php echo $checked; ?>>
Red: Med anledning av nedanstående kommentar. Naturligtvis är det så. :r
Re: Formulär - Checkbox
Dubbelpostning därför att jag ville kolla hur kodblocket såg ut för sig.
lillebror skrev:
...Slutligen, läser man av checkboxvariabeln genom detta sätt?
$metartaf['metartaf_activated'] = trim($_POST['metartaf_activated']);
Om du har skickat formuläret mha POST, så finns värdet i
$_POST['metartaf_activated']. Om du använt GET, hittar du värdet i
$_GET['metartaf_activated']. MEN! Eftersom PHP "snällt" låter dig använda icke-satta variabler är det säkrast att först kolla att variabeln ÄR satt, generellt sätt. I det speciella fallet där man har bara en checkbox (per namn) och något händer om den är ikryssad, dvs värdet är eg ointressant, det intressanta är om den är satt eller ej, kan detta kollas med:
if (isSet($_POST['metartaf_activated']))
//resp $_GET om get-metoden använts.
lillebror skrev:
...Vidare när man skickar informationen med ett formulär, är det bästa sättet att göra det genom POST? Har läst att GET är mindre säkert då man skickar det genom en s.k. querystring?
Kolla upp detta inlägg (och resten i den tråden) tillsammans med de inlägg som länkas ifrån den, så kommer begreppen säkert att klarna. :)