За последние 24 часа нас посетили 17780 программистов и 1658 роботов. Сейчас ищут 892 программиста ...

Как обработать кучку значений?

Тема в разделе "JavaScript и AJAX", создана пользователем Mysa, 25 ноя 2010.

  1. Mysa

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

    С нами с:
    19 июл 2010
    Сообщения:
    16
    Симпатии:
    0
    Задача: есть три параметра, которые надо передать в php-скрипт для обработки и вернуть полученное значение. Таких троек порядка 500. Как лучше организовать?
    На данный момент при формировании страници на каждой итерации делаю скрытые div и именую их по принципу
    $num_str="idType$counter";
    <div id="$num_str"></div>
    затем из ява-скрипта пытаюсь их получить в цикле:
    Код (Text):
    1.  
    2.  
    3.     for (a=1; a<counter; a++)
    4.         {
    5.             try
    6.             {
    7.             idSTR="idType"+a;
    8.             idTypeDiv=document.getElementById(idSTR);
    9.             idSTR="PointName"+a;
    10.             PointNameDiv=document.getElementById(idSTR);
    11.             idRTUDiv=getElementById("idRTU");
    12.                
    13.             idType=idTypeDiv.innerHTML;
    14.             PointName=PointNameDiv.innerHTML;
    15.             idRTU=idRTUDiv.innerHTML;
    16.             }
    17.             catch(e)
    18.             {
    19.             idType=null;
    20.             PointName=null;
    21.             idRTU=null;
    22.             alert("Cant get element!");
    23.             }
    24.        ....
    Но элементы не получаю. Не пойму в чем дело... Нельзя в качестве id в getElementById совать переменные??? О_О
     
  2. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Исходный текст смотрели? Там все верно? А то запись
    Код (Text):
    1. <div id="$num_str"></div>
    настораживает.
     
  3. Mat

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

    С нами с:
    12 дек 2006
    Сообщения:
    391
    Симпатии:
    0
    можно

    В JS заливай свои параметры в массив, потом всё отсылай методом POST через httpRequest, на серваке делай с ними что хочешь, там из них лепи XML и отправляй клиенту в функцию обработчик ответа (respnse). Дальше парси полученный XML, конечно есть ещё вариант с JSON
     
  4. Mysa

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

    С нами с:
    19 июл 2010
    Сообщения:
    16
    Симпатии:
    0
    Volt(220)
    это из php-скрипта:
    Код (Text):
    1. echo("<div id=\"$num_str\"></div>");
     
  5. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Код (Text):
    1. idRTUDiv=getElementById("idRTU");
    Можно вынести из цикла.
    У меня FireBug ругался на эту строчку пока я не вынес код в onload. Почему ругался я не понял.

    Вот это работает как ожидается:
    PHP:
    1. <html>
    2. <head>
    3.  <script>
    4. ....
    5. </script>
    6.  
    7. </head>
    8. <body onload='loadFnc()'>
    9.  
    10. <div id='idRTU'>Типа главный див</div>
    11. <?php for ($i=1;$i<10; $i++){ ?>
    12.     <div id='idType<?php echo $i ?>'>Содержимое контейнера <?php echo $i ?></div>
    13.     <div id='PointName<?php echo $i ?>'>Точка <?php echo $i ?></div>
    14.  <?php } ?>
    15. </body>
    16. </html>
    [js]function loadFnc(){
    idRTUDiv=document.getElementById("idRTU");
    for (a=1; a<10; a++){
    try{
    idSTR="idType"+a;
    idTypeDiv=document.getElementById(idSTR);
    idSTR="PointName"+a;
    PointNameDiv=document.getElementById(idSTR);

    idType=idTypeDiv.innerHTML;
    PointName=PointNameDiv.innerHTML;
    idRTUDiv.innerHTML=idRTUDiv.innerHTML+idType+" "+PointName+"<br>";

    }catch(e){
    idType=null;
    PointName=null;
    alert("Cant get element "+a);
    }
    }
    }
    [/js]
     
  6. Mysa

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

    С нами с:
    19 июл 2010
    Сообщения:
    16
    Симпатии:
    0
    Mat
    Ну собсна так и делаю, только отдаю не все 500 строк, а по одной строке 3 параметра в каждой. Так ответ разбирать почти не надо. Хотя может и загруженность сервака повышается... хз
    А по сути кода кто-то может что-то сказать? Где-то внутри try зависает и усе, даже catch не вываливает. Просто ничего не происходит...
     
  7. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    FireFox+FireBug+WebDeveloper(в основном для работы с куками и применения css типа print )+LiveHTTPHeaders
     
  8. Mat

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

    С нами с:
    12 дек 2006
    Сообщения:
    391
    Симпатии:
    0
    как это по 500 ... 500 запросов чтоли делаешь? это не только излишняя нагрузка на серв но и на клиента, если ты на хостинге чужом, считай что тебя забанили.

    1 запрос в которм все твои 500 строчек и 1 ответ!!! и только так!!!