הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   ביצוע פעולות PHP וJS בלחיצת כפתור אחת (https://hosts.co.il/forums/showthread.php?t=91238)

Vol 04-08-11 11:58

ביצוע פעולות PHP וJS בלחיצת כפתור אחת
 
למישהו יש מושג איך בלחיצת כפתור אני גורם למחרוזת להישלח לקובץ PHP שמעבד אותה ולאחר מכן להשתמש בפעולת JS שמעבדת את המחרוזת ?

אני אנסה להיות קצת יותר ברור -
קיים טופס בו מזין המשתמש מחרוזת. המחרוזת עוברת לקובץ PHP שמעבד אותה ולאחר מכן מציג אותה. ישנו קובץ JS נוסף ש"שואב" את המחרוזת המעובדת מקובץ הPHP ולאחר מכן מציג אותה בדף מבלי רענון.

איך אני גורם לכך שבלחיצת כפתור אחת המחרוזת תעבור קודם כל לקובץ הPHP ולאחר מכן ייעשה בה שימוש על ידי פעולת הJS?

תודה מראש לעוזרים

Haimz 04-08-11 12:07

אוקי תשתמש JQ
הנה קוד קטן שכתבתי: (לא בדקתי)
HTML קוד:

<html>
<head>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.js"></script>
        <script type="text/javascript">
                $(function() {
                        $("#forumid").submit(fucntion() {
                                var field = $("#field").val();
                                $.post("phpfile.php", { field : field } , function(resultdata)
                                {
                                        if(resultdata == "success")
                                        {
                                                alert('success');
                                        }
                                        else
                                        {
                                                alert('error');
                                        }
                                });
                                return false;
                        });
                });
        </script>
</head>
<body>
        <form id="forumid" method="post">
                <input type="text" id="field" /><br /><br />
                <input type="submit" value="submit" name="submit" />
        </form>
</body>
</html>

וזה הקובץ phpfile.php
PHP קוד:

<?php

    $field 
$_POST['field'];
    
    if(!empty ( 
$field ) )
    {
        echo 
'success';
    }
    else
    {
        
// errors and bla bla
    
}

?>

כמו שאמרתי אני לא בדקתי, ואני מקווה שהבנתי אותך

BlueNosE 04-08-11 12:48

אני חושב שלענות על שאלה כזאת בלי להזכיר אפילו את הביטויים AJAX או xmlHttp זו טעות חמורה.
חיפוש קצר בגוגל נתן לי תשובה יפה:
http://webmaster.org.il/articles/what-is-ajax
קרא קצת. זה חשוב להבין את זה בתור מתכנת, במיוחד אם תשתמש בזה.

Vol 04-08-11 12:51

עשיתי שימוש בAJAX כדי להציג את המחרוזת שעובדה בקובץ הPHP בדף ללא ריענון.
רק לשם בדיקה ניסיתי הרצתי את קובץ הPHP על מחרוזת שהגדרתי בתור משתנה (כלומר לא מחרוזת שנקלטה מטופס) וכל התהליך עובד יפה, הבעיה היא לגרום לקובץ הPHP לפעול ולאחר שהוא יסיים את הפעולה לגרום לJS לפעול וכל זה בלחיצת כפתור.
נכון לעכשיו לבצע כל פעולה בנפרד זה לא בעיה בכלל רק שהצורך הוא לבצע את שתיהן יחדיו...

BlueNosE 04-08-11 13:06

לשם כך יש לך את האירוע "onreadystatechange". בJQUERY זהו הפרמטר השלישי בפונקציה jQuery.post, ובPrototype אתה שולח onSuccess לפרמטרים באובייקט Ajax.

האירוע מתרחש כשהבקשה מסתיימת והתקבלה תשובה, ושולח לך קוד בחזרה. jQuery ודומיו יודעים לנתב לך את התשובה ולומר לך אם התרחשה שגיאה ללא צורך בבדיקת קוד העמוד. אם אתה מתעקש לכתוב בJS "נקי", פשוט תבדוק אם קוד העמוד הוא 200, ואם כן תציג את התשובה.

עוד מידע: http://developer.apple.com/internet/...mlhttpreq.html

Vol 04-08-11 13:26

ציטוט:

נכתב במקור על ידי BlueNosE (פרסם 813429)
לשם כך יש לך את האירוע "onreadystatechange". בJQUERY זהו הפרמטר השלישי בפונקציה jQuery.post, ובPrototype אתה שולח onSuccess לפרמטרים באובייקט Ajax.

האירוע מתרחש כשהבקשה מסתיימת והתקבלה תשובה, ושולח לך קוד בחזרה. jQuery ודומיו יודעים לנתב לך את התשובה ולומר לך אם התרחשה שגיאה ללא צורך בבדיקת קוד העמוד. אם אתה מתעקש לכתוב בJS "נקי", פשוט תבדוק אם קוד העמוד הוא 200, ואם כן תציג את התשובה.

עוד מידע: http://developer.apple.com/internet/...mlhttpreq.html

זה בדיוק מה שעשיתי כשדיברתי על הבדיקה בתגובה הקודמת - רק שבמקרה של הבדיקה המחרוזת כבר הייתה קיימת, אבל עכשיו היא צריכה להיקלט מתוך הטופס.
התהליך שאני צריך שיתבצע הוא כזה:
קליטת מחרוזת --->מעבר לקובץ PHP שמציג את המחרוזת המעובדת --->קליטת המחרוזת על ידי קובץ JS
ו

BlueNosE 04-08-11 16:24

כמו שהסברתי, אין שום בעיה לעשות את זה. את המחרוזת תקלוט באמצעות JS פשוט, לדוגמא getElementById, באמצעות Selector, או באמצעות שליחה של this בטופס.
אחרי שיש לך את המחרוזת, תשלח בבקשת xmlHttp אותה באמצעות GET או POST. המידע יחזור לך לJS. למעשה התבצעה פניה לשרת, אבל המשתמש לא ירגיש בה.
עם המחרוזת שקיבלת תעשה מה שבראש שלך.

אם אתה עוד מסתבך תביא קטע קוד וננסה לעזור.


כל הזמנים הם GMT +2. הזמן כעת הוא 04:43.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ