בעיה ...

MasterNir

New member
בעיה ...

אני משתמש בCheckbox וכשאני שולח אותם עם submit אני רוצה לראות איזה מהם מסומן ... עד כן הכול בסדר זה דיי פשוט ... אבל מה אני עושה כשאני לא יודע כמה Checkboxs יש לי ?
 

GPhoenixX

New member
אין פה פורום לתכנות צד לקוח ?

זה לא php :|
var boxes = document.getElementsByTagName( 'input' ); var el, i = 0; while (el = boxes[i++]) if (el.type == 'checkbox') bWhich = el.checked;​
אני לא בטוח שלזה התכוונת אבל תנסה ...
 

MasterNir

New member
אתה בטוח שאין משהו כזה בPHP ?

למה אני מתחיל למלא את העמוד בקוד JS .... ואני מעדיף PHP .... למישהו יש מוסג ??
 

MasterNir

New member
אני יסביר את עצמי יותר טוב ....

בעזרת לולאה של while יצרתי מספר מסויים של Checkboxs ... עכשיו המשתמש צריך לבחור כמה מתוכם ואחר כך ללחוץ על הכפתור "שלח!" שהוא בעצם submit ושולח אותם כPOST לעמוד admin.php באיה שלי היא שאני לא יודע איך "לאסוף" אותם ולקבל איזה Checkbox נבחר ואיזה לא .... אני מזכיר שאני לא יודע כמה Checkboxs יש לי ... מקווה שעכשיו הבנתם יותר טוב ושתוכלו לעזור לי ....
 

shanor

New member
ממממ...

בוא ננסה. קודם כל, נשאלת השאלה אילו שמות אתה נותן ל-CHECKBOX שלך. המקרה העדיף, לכל CHECKBOX יש שם מיוחד וייחודי לעצמו. כל מה שאתה צריך לעשות במקרה הזה הוא ללכת שם שם ולבדוק האם יש לך ערך כל שהוא לאותו CHECKBOX. הדרך לבצע את זה, היא כזו: בלולאה שמוציאה את ה- CHECKBOX שלך לתוך ה- HTML, תן לכל CHECKBOX שם בצורה הבאה: לקופסה הראשונה תן שם של :NAME1 לשניה: NAME2 וכך הלאה. תן משתנה כל שהוא שהוא יהיה HIDDEN שיכיל את כמות הסופית של הקופסאות (אם יש לך בלולאה 19 קופסאות למשל, הערך של המשתנה הזה יהיה 19). בשלב של שליפת הנתונים, כל מה שאתה צריך לעשות זה לבנות לולאה שתרוץ מ-0 (או מ-1) ועד 18 (או 19 אם התחלת מ-1), ולשלוף את המשתנים לפי NAME1... ועד האחרון. השיטה הזו אפשרית ומי למתחילים את דרכם ב-HTML, PHP ובכלל בתיכנות, הייתי אולי ממליץ ללכת לפיה, כי היא קלה להבנה, ליישום ובכלל מה שרואים זה מה שיש (כמעט WYSIWYG). שיטה מוצלחת יותר שלפיה אני הייתי הולך היא לתת לכל הקופסאות אותו שם: []NAME, השם הזה כאשר הוא מועבר ל-PHP מועבר בצורת מערך (ARRAY). ואז כל מה שיש לעשות הוא בדיוק כאילו ניגשים למערך רגיל, למשל:
$_POST['NAME'][$SomeCounter]​
מקווה שהייתי ברור מספיק, בהצלחה, שנאור.
 

MasterNir

New member
גם אני חשבתי על זה אבל ...

יש לי בעיה עם "לספור" כמה CHECKBOXS יש לי ... כי אני יוצר אותם לפי ID והוא לא בהכרך מתחיל מ1 ... אתה חושב שכדאי לי להוסיף כאונטר שיספור וכול פעם יוסיף אחד ? ואם כן אז אין מוסיפים אחד למשתנה למה ראיתי בקוד פעם
$CBNum ++​
 

shanor

New member
מממ...

אם תלך לפי השיטה השניה שהצעתי, לא תהיה לך בעיה. שם אין משמעות לזה שה-ID שלך לא מתחיל מ-1 או לא הולך בצורה רציפה, כי אתה ניגש לקופסאות שלך החל מהראשונה שמוגדרת ועד לאחרונה (למשל בעזרת FOREACH... ואז גם לא צריך לספור כמה קופסאות יש). שנאור.
 

MasterNir

New member
אוקי ... אני ילך לפיה ....אבל ...

מה צריך לכתוב בערך ? מה הוא יכתוב לי אם הCHECKBOX מסומן ? מה הוא יכתוב לי עם הוא לא מסומן ? ומה צריך להיות $SomeCounter ? תודה
 

shanor

New member
מממ...

ניר, צריך להאכיל אותך בכפית... קוד HTML ל -CHECKBOX:
<input type="checkbox" value="OK" name="testing123[]">​
כשזה בתוך טופס HTML, שלח את זה לסקריפט PHP שיבדוק:
foreach ($_POST['testing123'] as $LocalVar) { echo "value=".$LocalVar."<br>"; }​
תנסה. שנאור.
 

MasterNir

New member
תודה ....

ובקשר ללהאכיל אותי בכפית ... התחלתי "ללמוד" PHP לפני בערך יומיים ... אז אני עדיין "תינוק" בPHP ...
 

MasterNir

New member
שאלה בשביל לבדוק עם הבנתי ....

הפונקציה "foreach" בעצם עושה מין LOOP למערך נכון ?
 

shanor

New member
אכן כן.

קרא על זה כאן. www.php.net/foreach בהצלחה. שנאור.
 

MasterNir

New member
כן אולי בהמשך ...

בנתיים תודה ... נ.ב יש לך (או לכלול אחד אחר ...) אתר עם הסבר של שורה שתיים על כול פונקציה בPHP ? (אני לא רוצה הסברים ארוכים במו בPHP.net ...)
 
למעלה