-
@dovid
לטעון מידע מ INI אני יודע.
אני רוצה שהטופס יפתח בלחיצה על הכפתור בלי קשר למידע מקובץ INI.
את השאלה של איך להציג מידע לפי INI אני שואל בנוסף.@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 ןאראה לך איך להציג דף שונה לפי המידע שנטען.
-
@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 טפסים אני צריך אולי להריץ ללואה...
-
@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 טפסים אני צריך אולי להריץ ללואה...
-
@dovid
נכון, הדוגמא שהבאת מקודם ב JS הרבה יותר טובה כי היא פשוטה ולא מרעננת את הדף.
האם יש דוגמא דומה גם במקרה הזה ב JS?@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 האמת שלא קראתי טוב מה שכתבת, דוקא במקרה הזה אין ייתרון משמעותי ל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");
יש לציין שיש בדרך הזו בעיית אבטחה מסויימת, אבל קודם תבדוק שזה עונה על צרכיך.
-
@dovid
אוקי, אבל זה חייב לבוא יחד עם ללואה, לא?<?php $a = 1; while ($Form_num_ini >= $a) { include("forms/$a.php"); $a ++; } ?>
-
@GOOGL אני הנחתי ש$Form_num_ini מכיל מספר שהוא מתייחס לטופס בודד (למשל 5 = טופס מס' 5).
אם ההנחה שלי נכונה אין שום טעם פה בלולאה. -
@dovid
לפי איך שאני מביןinclude("forms/$Form_num_ini.php");
יציג רק טופס אחד,אבל מה עם יש לי 2 טפסים שמולאו וקובץ ה INI נראה ככה:
[Form_num = 1] First_name = Israel Last_name = Israeli [Form_num = 2] First_name = Sarah Last_name = Cohen
@GOOGL סוף סוף אתה מואיל לחשוף טפח מסודות הגרעין... תנסה להיות יותר שקוף ולתת יותר מידע.
ואתה רוצה בדף אחד להציג למשתמש את כל הטפסים שבקובץ עם כל הערכים המתאימים?
אני חשבתי שאתה רוצה לפי קריטריונים לשלוף טופס מסויים.
בקיצור תגיד מה בסוף אתה רוצה שיוצג למשתמש לפי הini האחרון שהראת. -
@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 -
@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 בהודעה הראשונה שלך היה נראה שאתה רוצה לתת טופס HTML שונה לפי מידע מסויים.
כעת אני מבין שאתה רוצה להציג בדף אחד, טופס שחוזר על עצמו על כל קובץ INI עם הערכים המתאימים בכל אחד.
ההבנה האחרונה נכונה? -
@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>
-
@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>
-
@dovid
אם אני מבין נכון, הקוד הזה טוב למקרה של קובץ INI שיש בו מערך עם שני מפתחות.
השאלה שלי אם יש לי שני קבצי INI ובכל אחד מערך אחד, מהי הדרך הנכונה להציג אותם.(סליחה על התגובה המאוחרת היו לי כמה תקלות רציניות בקוד).
@GOOGL הקוד שלי יועד למקרה הזה
[Form_num = 1] First_name = Israel Last_name = Israeli [Form_num = 2] First_name = Sarah Last_name = Cohen
שזה קובץ בודד אבל מרובה מקטעים (section).
אני מנסה להבין את המקרה שלך מתחילת השרשור,
ובשלב זה התייאשתי לרדוף אחריך.
אני כעת מבין שיש כמה קבצים ובכל קובץ כמה מקטעים.
אני לא יודע האם אתה תמיד רוצה את כל הקבצים או אתה רוצה בורר מסויים, ולפי מה הוא.
אני כבר לא יענה לך, אבל מקוה שאחרים כן. -
@GOOGL הקוד שלי יועד למקרה הזה
[Form_num = 1] First_name = Israel Last_name = Israeli [Form_num = 2] First_name = Sarah Last_name = Cohen
שזה קובץ בודד אבל מרובה מקטעים (section).
אני מנסה להבין את המקרה שלך מתחילת השרשור,
ובשלב זה התייאשתי לרדוף אחריך.
אני כעת מבין שיש כמה קבצים ובכל קובץ כמה מקטעים.
אני לא יודע האם אתה תמיד רוצה את כל הקבצים או אתה רוצה בורר מסויים, ולפי מה הוא.
אני כבר לא יענה לך, אבל מקוה שאחרים כן. -
D dovid העביר נושא זה מ-תכנות ב-