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:
  1. <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.
  1. <?php  
  2. if (isset($_POST['second'])) {  
  3.   mysql_query ("INSERT INTO user2groups (uid, gid) VALUES ('".$fetch['user_id']."''".$fetch_id['id']."')");  
  4. else {  
  5.   mysql_query ("DELETE FROM user2groups WHERE uid='".$fetch['user_id']."' AND gid='".$fetch_id['id']."'");  
  6. }  
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
  1. <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:
  1. <input type="checkbox" name="second" value="1" checked="checked"/>  
Pipálatlanul pedig:
  1. <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:
  1. 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:
  1. <?php  
  2. if (isset($_POST['second']) && $_POST['second']==1) {  
  3.   mysql_query ("INSERT INTO user2groups (uid, gid) VALUES ('".$fetch['user_id']."''".$fetch_id['id']."')");  
  4. else {  
  5.   mysql_query ("DELETE FROM user2groups WHERE uid='".$fetch['user_id']."' AND gid='".$fetch_id['id']."'");  
  6. }?>  
"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:
  1. <?php  
  2. print "\n" . '<br /><input type="checkbox" name="'.$row['name'].  
  3. '" value="'.$row['id'].'"' . ($row['checked'] ? ' checked="checked"' : '').  
  4. '>';  
  5. ?>  
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...
  1. <?php  
  2. print "\n" . '<br /><input type="checkbox" name="'.  
  3. htmlspecialchars($row['name']).'" value="'.  
  4. htmlspecialchars($row['id']).'"' .  
  5. ($row['checked'] ? ' checked="checked"' : '') . '>';  
  6. ?>  
9

Koszonom !

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