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
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"  
  2.     "http://www.w3.org/TR/html4/strict.dtd">  
  3. <html lang="en">  
  4. <head>  
  5.   <title>Checkbox</title>  
  6. </head>  
  7. <body>  
  8. <?php  
  9. // Itt tároljuk az értékeket.  
  10. $checkboxok = range(0, 3);  
  11. // Ide jönnek a kijelöltek, alapból ugye üres, amíg nem volt beküldés  
  12. $kijeloltek = array();  
  13. // Az !emptyempty még mindig csak !empty, csak a színező rontja el.  
  14. if (!emptyempty($_POST)) {  
  15.   
  16.   // Ha elküldték a formot, lehet bejelöltek pár checkboxot.  
  17.   if (!emptyempty($_POST['options']) && is_array($_POST['options'])) {  
  18.     foreach ($_POST['options'as $ertek) {  
  19.       $kijeloltek[] = $ertek;  
  20.     }  
  21.   }  
  22.   
  23.   // Kigyűjtjük a nem bejelölteket is, valamire csak jók lesznek ;)  
  24.   $nem_kijeloltek = array_diff($checkboxok$kijeloltek);  
  25. }  
  26. ?>  
  27.   <form action="#" method="post">  
  28.     <fieldset>  
  29.   
  30.     <?php foreach ($checkboxok as $ertek) : ?>  
  31.   
  32.       <label><?php print $ertek; ?>  
  33.   
  34.         <input type="checkbox" name="options[]" value="<?php print htmlspecialchars($ertek, ENT_QUOTES); ?>"<?php if (in_array($ertek$kijeloltek)) : ?> checked="checked"<?php endif; ?>>  
  35.       </label>  
  36.   
  37.     <?php endforeach; ?>  
  38.   
  39.     </fieldset>  
  40.     <input type="submit" name="op">  
  41.   </form>  
  42. </body>  
  43. </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.