פורסם 2008 במאי 1217 שנים שלום לכולם.אני בונה אתר ויש בו טופס "צור קשר".כשמנסים לשלוח הודעה בלי שממלאים את הפרטים נוספות הודעות מעל הבורדר של הטופס שמודיעות אילו פרטים לא מולאו.כשההודעה נשלחת החלון נמחק ומופיעה הודעה (שאומרת תודה על הפניה).אני רוצה שגם במקרה שלא כל הפרטים מולאו, החלון ימחק ויופיעו השגיאות, או לחלופין יפתח עמוד חדש ובו תופיע הודעה כללית שאומרת: "לא מלאת את כל הפרטים".זה לא אמור ליהיות עניין מסובך אבל לא עליתי על הפקודה שמנקה את החלון לפני שההודעה מודפסת ואני לא יודע איך לגרום לך שבמקרה ויש שגיאות יעבור עמוד.והקובץ האחראי על העניין:<?/* removing space characters from the edges of the data infos */$_POST["mail_from"]=trim($_POST["mail_from"]);$_POST["mail_name"]=trim($_POST["mail_name"]);$_POST["mail_subject"]=trim($_POST["mail_subject"]);$mail_ok=true; //we assume the form is set correctly.../* checking that the fields are filled ok */****************************************************************************if ($_POST["mail_from"]==""){ echo "<FONT color=\"#FF0000\">.'יש למלא את השדה 'דואר אלקטרוני</FONT><BR>\n"; $mail_ok=false;}if ($_POST["mail_name"]==""){ echo "<FONT color=\"#FF0000\">.'יש למלא את השדה 'שם מלא</FONT><BR>\n"; $mail_ok=false;}if ($_POST["mail_subject"]==""){ echo "<FONT color=\"#FF0000\">.'יש למלא את השדה 'נושא</FONT><BR>\n"; $mail_ok=false;}if ($_POST["mail_body"]==""){ echo "<FONT color=\"#FF0000\">.'יש למלא את השדה 'הודעה</FONT><BR>\n"; $mail_ok=false;}****************************************************************************if ($mail_ok) //if the fields are filled, we attempt to send the mail{ $to= "xxx@gmail.com"; //the E-mail to send the message to $subject=$_POST["mail_subject"]." xxx נשלח מהאתר "; //the subject of the mail $body=$_POST["mail_body"]."\n\n\n\n\n-----------------------------------------------------------\n נשלח מ\n xxx"; //the body of the mail (a text added to every mail body) $headers="From: ".$_POST["mail_from"]."\r\n"; //the headers of the mail if ($_POST["mail_name"]!="") //if the name field is filled $headers="From: ".$_POST["mail_name"]." <".$_POST["mail_from"].">\r\n"; //we add the name to the From header /* attempt to send the message */ $mail_ok=@mail($to,$subject,$body,$headers); //returns true if mail was sent successfully, if not then returns false if ($mail_ok) //if the mail was sent successfully {**************************************************************************** echo "<P><B><br/>הודעתך נשלחה בהצלחה!תודה</B></P>"; echo "<A href=\"../frames/1.html\">חזרה לעמוד הראשי</A>";**************************************************************************** } else { echo "<P><FONT color=\"#FF0000\"><B>שליחת האי-מייל נכשלה!!!</B> (בדוק את כתובת האי-מייל שאליו אתה שולח)</FONT></P>"; }}?>הדגשתי את החלק של ההודעות.* זה לא אני בניתי את המערכת הזאת, זה קוד פתוח ואני מתאים אותה לצרכים שלי.עריכה: אי אפשר להדגיש ב code אז סימתי את החלקים ב "******************"אני יודה מאוד למי שיעזור.
פורסם 2008 במאי 1217 שנים אין שום היגיון להכביד על המשתמש ולמחוק לו את העמוד בכל פעם שמשהו קטן לא בסדר, זה ממש מעצבן ולא נכון.מה שכן ניתן לעשות זה לבצע את עמוד הפעולה בתוך Iframe נסתר ואת השגיאות להציג ב Msgbox. איך עושים את זה ? פשוט.בתגית ה <form> אתה מוסיף: target="<שם ה Iframe>"תבנה לך פונקציה של MsgBox:function MsgBox($text) { echo "<script>\n"; echo " alert('".$text."')"; echo "</script>\n";}ובשביל להציג בעיה אתה עושה:if (empty($_POST["mail_from"])) { MsgBox("נא להקליד דואר אלקטרוני"); exit;}כך המשתמש יקבל הודעה, העמוד לא ימחק וכולם מרוצים.בסוף העמוד תרשום:echo "window.parent.location.href = 'bla.php';";
פורסם 2008 במאי 1217 שנים מחבר אוקי תודה רבה על העזרה. תגיד למה צריך לכתוב exit; ראיתי את זה במערכת אחרת. אם אני רושם את זה אני צריך למחוק את ה $mail_ok=false;?ולידע כללי, אם בכל זאת הייתי רוצה מעבר לדף אחר איך הייתי עושה את זה? ואם הייתי רושם תנאי לכל שדה בנפרד, שלא היו ממלאים 2 או יותר זה גם היה מעביר דף? או שהייתי צריך לרשום תנאי כולל של if/and לכל השגיאות (שנראה לי עושים את זה ככה: xxx || xxx)שוב תודה על העזרה. אני שוקל להשתמש בעצה שלך עם כמה msgbox שונים - אחד לכל אחד שכל אחד יופיע ליד השדה שלו.
פורסם 2008 במאי 1317 שנים ה exit כשמו כן הוא, יוצא מהתוכנית, מספיק אותה באמצא ולא ממשיך לכן אין צורך במשתנה בקרה.אם התוכנית מגיע לסוף לאחר כל הבדיקות סימן שזה בסדר ואתה יכל להמשיך כרגיל עם מה שאתה רוצה לעשות.
פורסם 2008 במאי 1317 שנים מחבר אוקיי הבנתי תודה. ומה לגבי זה ולידע כללי, אם בכל זאת הייתי רוצה מעבר לדף אחר איך הייתי עושה את זה?
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.