ugrás a tartalomhoz

checkbox

bvc · 2010. Feb. 27. (Szo), 19.01
Sziasztok!

A következőre problémámra keresek megoldást, sajnos fél napot töltöttem a google-n de a PHP űrlapkezelése ezek szerint nem valami fényes, mert a példákból rendre kihagyják. :(

Adott egy űrlap, amin van egy checkbox tömb, több választónégyzettel. A kérdéseim:
1. Hogyan tudom lekérdezni valamelyik választónégyzet kijelöltségét?
2. Hogyan tudom állítani valamelyik választónégyzet kijelöltségét?
3. Hogyan tudom valamelyik választónégyzethez rendelt értéket kiolvasni egy változóba?

Ezeket PHP-vel szeretném megoldani, mert a visszakapott változó értékével PHP-ben kell tovább számolnom. Nekem már félig-meddig működött, de sajnos belekevertem a javascriptet is, és kész káosz lett az egészből. :(
A segítséget köszönöm.
 
1

Checkboxok

Poetro · 2010. Feb. 27. (Szo), 21.57
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
  <title>Checkbox</title>
</head>
<body>
<?php
// Itt tároljuk az értékeket.
$checkboxok = range(0, 3);
// Ide jönnek a kijelöltek, alapból ugye üres, amíg nem volt beküldés
$kijeloltek = array();
// Az !emptyempty még mindig csak !empty, csak a színező rontja el.
if (!empty($_POST)) {

  // Ha elküldték a formot, lehet bejelöltek pár checkboxot.
  if (!empty($_POST['options']) && is_array($_POST['options'])) {
    foreach ($_POST['options'] as $ertek) {
      $kijeloltek[] = $ertek;
    }
  }

  // Kigyűjtjük a nem bejelölteket is, valamire csak jók lesznek ;)
  $nem_kijeloltek = array_diff($checkboxok, $kijeloltek);
}
?>
  <form action="#" method="post">
    <fieldset>

    <?php foreach ($checkboxok as $ertek) : ?>

      <label><?php print $ertek; ?>

        <input type="checkbox" name="options[]" value="<?php print htmlspecialchars($ertek, ENT_QUOTES); ?>"<?php if (in_array($ertek, $kijeloltek)) : ?> checked="checked"<?php endif; ?>>
      </label>

    <?php endforeach; ?>

    </fieldset>
    <input type="submit" name="op">
  </form>
</body>
</html>
2

re:Checkboxok

bvc · 2010. Feb. 28. (V), 12.16
Köszönöm a választ. Érdekes megoldás. Közben sikerült egy oktatóval is konzultálnom, és ő talán mégegyszerűbb megoldást adott az értékkiírásra. Tanulságképpen legyen itt ez a megoldás is másoknak:

<form method="post">
<input type="checkbox" name="valami[1]" value=1234>
<input type="checkbox" name="valami[2]" value=5678>
<input type="submit">
</form>

<?php
if (isset($_POST['valami']['1'])) {
echo $_POST['valami']['1'];
}
?>

Poetro, neked pedig köszönöm a többit.