ריבוי CHECKBOX

patael

New member
ריבוי CHECKBOX

זו בעייתי, אני נותן למשתמש טופס שהוא יוכל למחוק מה- DB איזה ערך שירצה, הוא רק צריך לסמן ב CHECKBOX וזה אמור להישלח לעמוד המוחק. עכשיו, איך אני אמור לדעת איזה CHECKBOX נשלח, הרי הטופס הזה הוא דינמי, וה CKECKBOX תלוי בערכים שיש ב DB, כלומר כל ID שקיים ב DB יוצר CKECKBOX מה עושים?
 

Megapuzik

New member
משהו כזה :

ליד כל ערך שאתה מוחק, אתה שם צקבוקס, ומבא לה את הערך של הID מהטבלאה :
<input type=checkbox name=delitem[] value=´$id´>​
וגם, השם הוא הרי צריך להיות מערך ולכן ה[] בNAME... עכשיו, בדף שמקבל אפשר לעשות משהו כזה :
$del_in_query= implode($delitem, ","); mysql_query("DELETE FROM kaki WHERE id IN($del_in_query)");​
כמובן שה$delitem זה מערך ולכן לפני כל זה אפשר לבדוק אם יש בו ערכים עם כל מיני פונקציות מתאימות. בהצלחה.
 

shanor

New member
אז ככה:

1. אני בהחלט חושב שהדרך שMegapuzik מציע טובה. 2. אני אישית אוהב לעבוד בצורה מעט שונה בתיכנות אבל זהה כמעט לחלוטין בתוצאות: כשאתה מקבל את הטופס בצד השרת שלך, לפני שאתה מתחיל לדבר עם מאגר הנתונים שלך, אתה צריך לבדוק מה סומן כדי לבצע את הפעולה הנדרשת. ובכן ב- PHP קיימת פונקציה (ואני בטוח שגם ב- ASP יש משהו דומה) שנקראת FOREACH... היות והנתוני ה-CHECKBOX שלך שנשלחים בטופס, נשלחים בצורה של מערכים ARRAY, (המערך נוצר בגלל שהשם של ה-CHECKBOX זהה), הדברים שמבדילים CHECKBOX אחת מהשניה הם הערכים של כל CHECKBOX. לכן לכל קופסה תן ערך מסויים שיהווה משהו מתוך מאגר הנתונים שלך (אני למשל אוהב להשתמש באינדקס של השדות, ואז פשוט על פי הערך שאני מקבל מהטופס על ידי שימוש בפונקצית ה- FOREACH, אני מבצע את המוניפולציה המתאימה. בגדול פקודת ה- FOREACH תקח מערך ותריץ על כל אחד מאברי המערך את הפקודות שיימצאו בתוך מקטע ה- FOREACH. בהצלחה שנאור.
 
למעלה