ugrás a tartalomhoz

Checkbox ertekenek torlese adatbazisbol

Anonymous · 2006. Aug. 1. (K), 10.23
Adott 3 checkbox:

<input type="checkbox" name="groups[]" value="1" checked="checked">registered</input>
<input type="checkbox" name="groups[]" value="2" checked="checked">second</input>
<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.

if(isset($_POST['groups'])) {
$groups = $_POST['groups'];
foreach ($groups as $value) {
mysql_query ("INSERT INTO user2groups (uid, gid) VALUES ('".$fetch['user_id']."', '".$value."')");  
}
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.

<input type="checkbox" name="groups[]" value="1" checked="checked">registered</input>
<input type="checkbox" name="groups[]" value="2" checked="checked">second</input>
<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:

$groups = $_POST['groups'];
for ($i=1; $i<3; $i++) {
    if (in_array($i, $groups)) {
        // mysql DELETE ...
    }
}
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.