ugrás a tartalomhoz

Checkbox ertekenek torlese adatbazisbol

Anonymous · 2006. Aug. 1. (K), 10.23
Adott 3 checkbox:
  1. <input type="checkbox" name="groups[]" value="1" checked="checked">registered</input>  
  2. <input type="checkbox" name="groups[]" value="2" checked="checked">second</input>  
  3. <input type="checkbox" name="groups[]" value="3">new</input>  
A fenti sorokbol latszik, hogy csak 2 checkbox van bejelolve. A harmadik checkbox nincs bejelolve!
A PHP szkriptem elenorzi ha letezik az adatbazisban az 1,2,3 ertek es ha leteznek bejeloli oket.

Az adatbazis tabla igy nez ki most:

gid
===
1
2
Eddig minden ok.

A PHP lapon a kovetkezo modon adom hozza a kijelolt checkboxokat az adatbazishoz.
  1. if(isset($_POST['groups'])) {  
  2. $groups = $_POST['groups'];  
  3. foreach ($groups as $value) {  
  4. mysql_query ("INSERT INTO user2groups (uid, gid) VALUES ('".$fetch['user_id']."''".$value."')");    
  5. }  
Minden kijelolt checkbox bekerul az adatbazisba. Most tesztem azt, hogy kijelolom mind a 3 checkboxot es rakatintok a Submit gombra.

Ujra belepek a PHP lapra, most mind a 3 checkbox be van jelolve.
  1. <input type="checkbox" name="groups[]" value="1" checked="checked">registered</input>  
  2. <input type="checkbox" name="groups[]" value="2" checked="checked">second</input>  
  3. <input type="checkbox" name="groups[]" value="3" checked="checked">new</input>  
Minden ok. Most jon a problema.
Ki szeretnem jelolni a 2-es es 3-as szamu checkboxot. Ezeknek az ertekuk ahogy latszik (value=) 2 es 3.

Amikor rakatintok a "submit" gombra szeretnem ha ezek a szamok (2,3) torlodnenek az adatbazisbol. Amikor belepek a PHP lapra csak az elso checkboxot szeretnem latni bejelolve.

Valami olyasmire gondoltam, hogy meg kene kapjam az ures checkboxok erteket es while-t hasznalva egyenkent torolje az osszes ures kocka erteket. De nem tudom, hogyan csinaljam, ha jo az amire gondoltam.

Tudnatok segiteni ? Nagyon megkoszonom!
 
1

in_array

vbence · 2006. Aug. 1. (K), 11.00
Mivel a totál szám (a példában 3) fix, azért írsz egy for ciklust, ami végigmegy ezeken, az in_array függvény pedig megmondja, hogy benne van, vagy nincs a kijelöltek között:
  1. $groups = $_POST['groups'];  
  2. for ($i=1; $i<3; $i++) {  
  3.     if (in_array($i$groups)) {  
  4.         // mysql DELETE ...  
  5.     }  
  6. }  
2

ok

Anonymous · 2006. Aug. 1. (K), 11.06
koszonom !
Most a fix szam 3, de az valtozhat, az adminisztrator hozaadhat tobb checkboxot egy laprol.
Meg lehet oldani a gondot ha az ertek valtozik ?
3

lekérdezed

Hojtsy Gábor · 2006. Aug. 1. (K), 11.49
Egy kis fantáziát érdemes lenne belevinni a fejlesztésbe. A lehetséges csoportokat simán le tudod kérdezni a táblából, és eszerint végig tudsz menni a kapott adatokon.