-
@dovid אמר בהוספת עוד חלק קוד html ו PHP דינמי.:
יש לך מסד נתונים? איך אתה שומר את העדפות המשתמש?
בקבצי INI, אבל אני מתכוון על הוספת קטעים עוד לפני שמירת העדפות אני מתכוון עוד בשלב האנטרקציה הראשונית כמו
.@ivrtikshoret אמר בהוספת עוד חלק קוד html ו PHP דינמי.
כתבת php והבאת דוגמאות של js
כי לא מצאתי משהו ב PHP.
-
@dovid
לדוגמא כשלוחצים על ה button נפתח ה form:<?php $fname = $lname = ""; if (empty($_POST["fname"])) { } else { $fname = $_POST["fname"]; } if (empty($_POST["lname"])) { } else { $lname = $_POST["lname"]; } ?> <html> <body> <button type="button">Click</button> <form action=""> <label for="fname">First name:</label><br> <input type="text" id="fname" name="fname" value="<?php echo $fname;?>"><br> <label for="lname">Last name:</label><br> <input type="text" id="lname" name="lname" value="<?php echo $lname;?>"><br><br> <input type="submit" value="Submit"> </form> </body> </html>
-
@GOOGL
אני יסביר את עצמי...
יש לי 2 שאלות:-
לפתוח חלק שלם בקוד HTML אני חושב שאפשר כמו אקורדיון, כלומר שהוא מוסתר ויכול להיות מוצג בעזרת לחיצה על הכפתור.אבל אני מעדיף להשתמש בזה בתור מוצא אחרון.
-
אם מישהו לחץ על הכפתור ומילא טופס ושלח, איך אני יציג לו את הטופס בפעם הבאה בתוספת אפשרות למלאות שוב טופס חדש.
-
-
@GOOGL אמר בהוספת עוד חלק קוד html ו PHP דינמי.:
@dovid
אני רוצה שהטופס יפתח בלחיצה על הכפתור בלי קשר למידע מקובץ INI.יש שתי גישות, גישה אחת זה לעשות את זה בצד שרת בPHP. אתה צריך לעטוף את הbutton בform קטן, ובעת לחיצה הדף יהיה שונה:
<body> <?php if ($_POST["show_form"]) : ?> <form action=""> <label for="fname">First name:</label><br> <input type="text" id="fname" name="fname" value="<?php echo $fname; ?>"><br> <label for="lname">Last name:</label><br> <input type="text" id="lname" name="lname" value="<?php echo $lname; ?>"><br><br> <input type="submit" value="Submit"> </form> <?php else : ?> <form method="POST"> <input type="hidden" value="show_form" /> <button type="submit">הצג טופס</button> </from> <?php endif; ?> </body>
בגישה זו, בעת הלחיצה כל העמוד עובר ריענון ואז מגיע עמוד עם השינוי.
הגישה השניה והמומלצת כיום היא דינמיקה בצד לקוח, שזה מושג אך ורק ע"י שפת JS, הנה דוגמה:<body> <button type="button" onclick="visForm()">הצג טופס</button> <form action="" style="display: none;" id="form"> <label for="fname">First name:</label><br> <input type="text" id="fname" name="fname" value="<?php echo $fname;?>"><br> <label for="lname">Last name:</label><br> <input type="text" id="lname" name="lname" value="<?php echo $lname;?>"><br><br> <input type="submit" value="Submit"> </form> <script> function visForm(){ document.getElementById("form").style.display = 'block'; } </script> </body>
את השאלה של איך להציג מידע לפי INI אני שואל בנוסף.
נו אז כשנענה לך על אחד תברח לשני? תביא קוד שטוען INI ןאראה לך איך להציג דף שונה לפי המידע שנטען.
-
@dovid
תודה רבה על ההסבר הברור!
לגבי השאלה השניה אז:
דוגמא למה שמופיע בקובץ INI לאחר שליחה של הטופס בפעם הראשונה:Form_num = 1 First_name = Israel Last_name = Israeli
דוגמא לשליפת הערכים מ INI:
<?php $fname = $lname = $Form_num = ""; if (empty($_POST["fname"])) { } else { $fname = $_POST["fname"]; } if (empty($_POST["lname"])) { } else { $lname = $_POST["lname"]; } if (empty($_POST["Form number"])) { } else { $Form_num = $_POST["Form number"]; } $ini_array = parse_ini_file("Names.ini"); $Form_num_ini = $ini_array['Form_num']; $First_name_ini = $ini_array['First_name']; $Last_name_ini = $ini_array['Last_name']; ?> <html> <body> <?php if ($_POST["show_form"]) : ?> <form action=""> <label for="Form number">Form number:</label><br> <input type="text" id="Form number" name="Form number" value="<?php echo $Form_num; ?>"><br> <label for="fname">First name:</label><br> <input type="text" id="fname" name="fname" value="<?php echo $fname; ?>"><br> <label for="lname">Last name:</label><br> <input type="text" id="lname" name="lname" value="<?php echo $lname; ?>"><br><br> <input type="submit" value="Submit"> </form> <?php else : ?> <form method="POST"> <input type="hidden" value="show_form" /> <button type="submit">הצג טופס</button> </from> <?php endif; ?> </body> </html>
האם לדוגמא ככה זה יהיה נכון להציג דף שונה לפי המידע שנטען?
<body> <?php if ($Form_num_ini == 1) : ?> <p>Form number:<?php echo $Form_num; ?></p><br> <p>First name:<?php echo $fname; ?></p><br> <p>Last name:<?php echo $lname; ?></p> <?php else : ?> <?php endif; ?> </body>
רק שאם יש לי 10 טפסים אני צריך אולי להריץ ללואה...
-
@GOOGL האמת שלא קראתי טוב מה שכתבת, דוקא במקרה הזה אין ייתרון משמעותי לJS.
בכל מקרה, אני מציע לעשות תיקיה בשרת, לקרוא לה נגיד forms, בתוכה שים קבצים עם שמות שתוכל לשלוף לפי הINI, למשל 1.php וכן הלאה.
בכל קובץ מהם שים טופס, למשל 1.php ייראה ככה:<form action=""> <label for="Form number">Form number:</label><br> <input type="text" id="Form number" name="Form number" value="<?php echo $Form_num; ?>"><br> <label for="fname">First name:</label><br> <input type="text" id="fname" name="fname" value="<?php echo $fname; ?>"><br> <label for="lname">Last name:</label><br> <input type="text" id="lname" name="lname" value="<?php echo $lname; ?>"><br><br> <input type="submit" value="Submit"> </form>
בדף הראשי (עליו עבדת עד עכשיו) תכתוב כזה קוד:
<?php $fname = $lname = $Form_num = ""; if (empty($_POST["fname"])) { } else { $fname = $_POST["fname"]; } if (empty($_POST["lname"])) { } else { $lname = $_POST["lname"]; } if (empty($_POST["Form number"])) { } else { $Form_num = $_POST["Form number"]; } $ini_array = parse_ini_file("Names.ini"); $Form_num_ini = $ini_array['Form_num']; $First_name_ini = $ini_array['First_name']; $Last_name_ini = $ini_array['Last_name']; include("forms/$Form_num_ini.php");
יש לציין שיש בדרך הזו בעיית אבטחה מסויימת, אבל קודם תבדוק שזה עונה על צרכיך.
-
-
@GOOGL סוף סוף אתה מואיל לחשוף טפח מסודות הגרעין... תנסה להיות יותר שקוף ולתת יותר מידע.
ואתה רוצה בדף אחד להציג למשתמש את כל הטפסים שבקובץ עם כל הערכים המתאימים?
אני חשבתי שאתה רוצה לפי קריטריונים לשלוף טופס מסויים.
בקיצור תגיד מה בסוף אתה רוצה שיוצג למשתמש לפי הini האחרון שהראת. -
@dovid אמר בהוספת עוד חלק קוד html ו PHP דינמי.:
@GOOGL סוף סוף אתה מואיל לחשוף טפח מסודות הגרעין...
מתנצל, לא התכוונתי להסתיר, חשבתי שאני ברור.
בקיצור תגיד מה בסוף אתה רוצה שיוצג למשתמש לפי הini האחרון שהראת
נגיד שיש לי 2 קבצי INI אחד בשם
Form_num_1.INI
והשני בשםForm_num_2.INI
ב
Form_num_1.INI
יש :First_name = Israel Last_name = Israeli
וב
Form_num_2.INI
יש :First_name = Sarah Last_name = Cohen
ואני רוצה שזה יוצג ככה:
First name:Israel
Last name:Israeli
First name:Sarah
Last name:Cohen -
@GOOGL נסה את הקוד הבא:
<?php $ini_array = parse_ini_file("Names.ini", true); ?> <html> <body> <?php foreach ($ini_array as $key => $data) { ?> <form> <label for="Form number">Form number:</label><br> <input type="text" id="Form number" name="Form number" value="<?php echo $key; ?>"><br> <label for="fname">First name:</label><br> <input type="text" id="fname" name="fname" value="<?php echo $data["fname"]; ?>"><br> <label for="lname">Last name:</label><br> <input type="text" id="lname" name="lname" value="<?php echo $data["lname"]; ?>"><br><br> <input type="submit" value="Submit"> </form> <hr style="margin-bottom: 20px;"> <?php } ?> </body> </html>