ugrás a tartalomhoz

Checkbox bejelöltségének megtartása PHP-vel

Anonymous · 2006. Júl. 21. (P), 10.53
Van a kovetkezo checkboxom:

<input type="checkbox" name="second">second</input><br />
Ha ez be van jelolve akkor elindul egy mysql querty ami hozaadja a felhasznalot a second csoporthoz.

Ha nincs bejelolve akkor torli a felhasznalot a second csoportbol.

<?php
if (isset($_POST['second'])) {
  mysql_query ("INSERT INTO user2groups (uid, gid) VALUES ('".$fetch['user_id']."', '".$fetch_id['id']."')");
} else {
  mysql_query ("DELETE FROM user2groups WHERE uid='".$fetch['user_id']."' AND gid='".$fetch_id['id']."'");
}
Hogyan tudnam megcsinalni, ha egyszer kijelolom a checkboxot maradjon bejelolve ameddig en ki nem jelolom ?

Koszonom !
 
1

checked

city99 · 2006. Júl. 21. (P), 11.07
checked=1 aztan hogy js vagy a kidobott html-be varazsolod a "checked"-et a te dolgod.
2

kosz

Anonymous · 2006. Júl. 21. (P), 11.17
Ha ezt irom be

<input type="checkbox" name="second" checked="0">second</input><br />
Akkor is ki van jelolve a checkbox, de miert?
3

tessék olvasni!

tiku I tikaszvince · 2006. Júl. 21. (P), 11.40
http://htmlinfo.polyhistor.hu/html_ref/form.htm#INPUT

a. Értéket a value="" atributum beállításával tudsz adni a beviteli mezőnek.
b. ha be szerertnéd jelölni, akkor "csak" meg kell adni a checked atributumot. XHTML-nél checked="checked"

Szóval helyesen így nézne ki a jelölő négyzeted kipipálva:
<input type="checkbox" name="second" value="1" checked="checked"/>
Pipálatlanul pedig:
<input type="checkbox" name="second" value="1" />
Az ellenőrzést pedig úgy végezném el, hogy létezik-e (isset) a $_POST['second'] változó, ÉS az értéke az-e amit te beállítottál (itt 1)

TikuVoltam
4

Koszonom !

Anonymous · 2006. Júl. 21. (P), 13.00
Koszonom a segitseget! Lenne meg egy kerdesem.

Adott a kovetkezo sor:

mysql_query ("INSERT INTO user2groups (uid, gid) VALUES ('".$fetch['user_id']."', '".$fetch_id['id']."')"); 
hogyan tudnam beirni a checkbox erteket (value=1) oda ahol a $fetch_id['id'] van ?
5

segitseg

Anonymous · 2006. Júl. 21. (P), 13.32
tudtok segiteni? lehetseges ezt megoldani?
6

Ez itt már teljesen offtopic

tiku I tikaszvince · 2006. Júl. 21. (P), 15.36
Ennek már semmi köze az eredeti kérdéshez!
Gondold végig, hogy mit jelent egy rekord ebben a táblában? Ha jól emlékszem azt, hogy a uid azonosítóju felhasználó tagja a gid azonosítójú csoportnak. Így van? Ha jól értem akkor előveszed az eredeti példádat és hegesztessz rajta egy kicsit, annak megfelelően amit az előző hozzászólásomban írtam le! StLT:
<?php
if (isset($_POST['second']) && $_POST['second']==1) {
  mysql_query ("INSERT INTO user2groups (uid, gid) VALUES ('".$fetch['user_id']."', '".$fetch_id['id']."')");
} else {
  mysql_query ("DELETE FROM user2groups WHERE uid='".$fetch['user_id']."' AND gid='".$fetch_id['id']."'");
}?>
"Ha működik elővesszük az ezüstöt és tállalunk"

TikuVoltam
7

segitseg!

Anonymous · 2006. Júl. 31. (H), 11.52
A kovetkezo sorba:

print "\n" . '<br /><input type="checkbox" name="'.$row['name'].'" value="'.$row['id'].'"';

szeretnek beszurni egy ternary operatort.

Peladaul ha 1 == 1 akkor checked="checked" legyen kulonben semmi.

Tudnatok segiteni ?
Hogyan kell ezt csinalni?
8

ternary operator

Hojtsy Gábor · 2006. Júl. 31. (H), 12.39
Így:
<?php
print "\n" . '<br /><input type="checkbox" name="'.$row['name'].
'" value="'.$row['id'].'"' . ($row['checked'] ? ' checked="checked"' : '').
'>';
?>
A lényeg, hogy érdemes zárójelbe tenni, ahova a ternális operátort teszed (én még ott is ezt követem, ahol nem feltétlenül szükséges). A kérdőjel előtt van a viszgált kifejezés. Ha ez igaz, akkor a kérdőjel és a kettőspont közötti dolog lesz az eredmény, ha nem, akkor a kettőspont utáni.

Ezen felül érdemes a speciális HTML karaktereket kezelni, ha véletlenül idézőjel vagy más HTML-ben speciális karakter lenne a name vagy id értékekben...
<?php
print "\n" . '<br /><input type="checkbox" name="'.
htmlspecialchars($row['name']).'" value="'.
htmlspecialchars($row['id']).'"' .
($row['checked'] ? ' checked="checked"' : '') . '>';
?>
9

Koszonom !

Anonymous · 2006. Júl. 31. (H), 13.22
Koszonom !