За последние 24 часа нас посетили 16642 программиста и 1651 робот. Сейчас ищут 1513 программистов ...

prototype.js поочерёдный вывод значений цикла

Тема в разделе "JavaScript и AJAX", создана пользователем cyber-sky, 19 авг 2010.

  1. cyber-sky

    cyber-sky Активный пользователь

    С нами с:
    7 авг 2007
    Сообщения:
    10
    Симпатии:
    0
    Нужно, чтобы элементы цикла выводились сразу. Т.е вывелся в текст арену 0, через секунду 1, потом 2 и так далее. Т.е выводить элементы отдельно, а не все вместе.

    Код index.html
    Код (Text):
    1. <html>
    2. <head>
    3. <script src="prototype.js"></script>
    4. </head>
    5. <body>
    6. <form id="myform">
    7.     <input type="button" onclick="dosubmit()" value="Submit">
    8.     <textarea id="content" name="content" cols="10" rows="10"></textarea>
    9. </form>
    10.  
    11. <script>
    12. function dosubmit()
    13. {
    14.     new Ajax.Updater('content', 'i.php', { method: 'post', parameters: $('myform').serialize() } );
    15. }
    16. </script>
    17. </body>
    18. </html>

    Код i.php

    Код (Text):
    1.  
    2. <?
    3. for($i=0; $i<=55; $i++)
    4. {
    5.     echo $i."\r\n";
    6.     sleep(1);
    7. }
    8. ?>
    Как это сделать :?:
     
  2. ShamahN

    ShamahN Активный пользователь

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    та еще какашка.
    Предполагаю, что надо n-раз дернуть, а не 1 раз дернуть n-штук
     
  3. Михаил

    Михаил Активный пользователь

    С нами с:
    12 июл 2009
    Сообщения:
    545
    Симпатии:
    0
    Адрес:
    Bielarus
    Попробуй так:
    [js]
    Event.observe(window,'load',function(){
    Event.observe('btn','click',function(){
    new Ajax.Request('i.php', { method: 'post',
    parameters: $('myform').serialize(),
    onSuccess:function(tr){
    var a=$w(tr.responseText);
    var n=0;
    function iter(){
    return a[n];
    };
    new PeriodicalExecuter(function(pe){
    insert=iter();
    if(insert!==undefined){
    $("content").value+=insert+"\n";
    }else{
    pe.stop();
    };
    n++;
    },1);
    }
    });
    });
    });
    [/js]

    Убери из i.php sleep(1)
    И html:

    HTML:
    1.  
    2. <form id="myform">
    3.    <input type="button" id='btn' value="Submit">
    4.    <textarea id="content" name="content" cols="10" rows="10"></textarea>
    5. </form>
    6.  
    Код не совершенен конечно...
     
  4. cyber-sky

    cyber-sky Активный пользователь

    С нами с:
    7 авг 2007
    Сообщения:
    10
    Симпатии:
    0
    Михаил огромное спасибо, всё работает, буду разбираться в коде :)

    ShamahN а какой лучше? jQuery ?
     
  5. ShamahN

    ShamahN Активный пользователь

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    на вкус и цвет. Однозначно не сказать
     
  6. Михаил

    Михаил Активный пользователь

    С нами с:
    12 июл 2009
    Сообщения:
    545
    Симпатии:
    0
    Адрес:
    Bielarus
    Да пожалуйсто
    jQuery она я бы сказал более очевидна, чем прототип, но прототип это классно, только эффекты нужно подключать или
    с акуло или rico или fx... а так вообще классная вещь.
    )