प्रोटोटाइप Ajax.Updater सही ढंग से देरी से काम नहीं कर रहा

वोट
0

क्या मैं यहाँ मिल गया एक Ajax.Updater प्रोटोटाइप js कार्य है। यह पूरी तरह से इस तरह से काम कर रहा है:

new Ajax.Updater('feedback', 'contact.php', {
    method: 'post',
    parameters: Form.serialize($('contactForm')),
    onFailure: reportError
});

लेकिन मैं इस प्रक्रिया में थोड़ा देरी करने के लिए चाहते हैं। मैं प्रोटोटाइप irc चैनल पर चारों ओर से पूछा और यह जाने का रास्ता लगता है:

var feedback = function() {
    new Ajax.Updater('feedback', 'contact.php', {
        method: 'post',
        parameters: Form.serialize($('contactForm')),
        onFailure: reportError
    });

    new Effect.Highlight('feedback', {
        duration: 1
    });
}
feedback.delay(1.5);

(डॉन टी scriptaculous प्रभाव मन)

वहाँ contact.php में एक गूंज समारोह है कि इस तरह दिखता है है:

echo(Thanks for your message $_POST['Name']!);

देरी लागू करने के बाद नाम नहीं रह गया है गूँजती है! क्या गलत है?

15/06/2009 को 10:29
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


4 जवाब

वोट
0

क्यों तुम सिर्फ एक में बात रैप नहीं setTimeOut कॉल। इस प्रकार ajax अनुरोध में देरी के बजाय प्रदर्शित देरी। जो btw excatly प्रोटोटाइप देरी समारोह क्या करता है

परंतु

new Ajax.Updater.delay(2, 'feedback', 'contact.php', {
    method: 'post',
    parameters: Form.serialize($('contactForm')),
    onFailure: reportError
});

भी काम करना चाहिए

15/06/2009 को 10:37
का स्रोत उपयोगकर्ता

वोट
0

मैं इसे फिर से आजमाएंगे।

परिवर्तन

echo("Thanks for your message $_POST['Name']!");

सेवा मेरे

echo("Thanks for your message ".$_POST['Name']."!");

और फिर प्रयत्न करें।

और सुनिश्चित करें कि आप लागू कर दिया है reportErrorसमारोह तुम यहाँ में पारित

onFailure: reportError

जैसे

function reportError(request){alert('Shit happens!');}
15/06/2009 को 11:00
का स्रोत उपयोगकर्ता

वोट
1

ठीक पिछले इस पर प्रयास करें। यह मेरे लिए काम करता है और आप क्या चाहते हैं करता है

मेरे एचटीएमएल फ़ाइल

<html>
    <head>
        <title>asd</title>
        <script type="text/javascript" src="src/prototype.js"></script>
        <script type="text/javascript" src="src/scriptaculous.js"></script>
        <script type="text/javascript">
            var feedback = function() {
                var params = Form.serialize($('contactForm'));
                new Ajax.Updater('feedback', 'contact.php', {
                    method: 'post',
                    parameters: params,
                    onFailure: reportError,
                    asynchronous:true
                });

                new Effect.Highlight('feedback', {
                    duration: 1
                });
            }
            function reportError(request) { alert("error");} 

        </script>
    </head>
    <body>
        <form id="contactForm">
            <p>Name:<br><input name="Name" type="text" size="30" maxlength="30"></p>
            <input name="sendbutton" type="button" value="Send" onClick="feedback.delay(1.5);">
        </form>
        <div id="feedback">foo</div>
    </body>
</html>

मेरे contact.php

<?php
echo("Thanks for your message ".$_POST['Name']."!");
?>

और से js फ़ाइलों का उपयोग कर यहाँ

15/06/2009 को 12:23
का स्रोत उपयोगकर्ता

वोट
0

यह पूछा मूल प्रश्न पर लागू नहीं होता - लेकिन जब से मैं अपने खोज में इस सूत्र बारे में जाना। लगा मैं अपने परिणामों पोस्ट चाहते हैं।

मैं कुछ कोड एक ajax अपडेटर अचानक काम करना बंद कर दिया था:

new Ajax.Updater('my_id, 'http://mydomain.com/my_script.php');

कारण यह मेरे लिए काम नहीं किया क्योंकि मैं www.mydomain.com पर था (mydomain.com के खिलाफ)

मैं बस यह करने के लिए बदल दिया है:

new Ajax.Updater('my_id, 'my_script.php');

और यह ठीक काम किया।

02/11/2013 को 17:51
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more