createRequestObject в цикле
Вем привет. Задача отправить запрос и получить ответ в цикле, цикл может быть разным, вот код:
for (i=0; i<5; i++) { var id = 'id_'+i; var id_send = document.getElementById(id).value; var id_result = 'result_'+i; var http = createRequestObject(); if( http ) { http.open('get', 'name.php?send_id='+id_send); http.onreadystatechange = function () { if(http.readyState == 4) { document.getElementById(id_result).innerHTML=http.responseText; return; } } http.send(null); } else { document.location = 'index.php'; } } результат вставляется в id='id_result' в таблицу, но проблема в том, что результат получает только последний, и заполняется результат в таблице только последняя строка :( Где грабли??? |
Никто не знает???
|
Оберните всё что в цикле в функцию
|
Нифига чет не получается, ошибки разные бъет, может напишите куда и как??
Вот весь код: echo "<script language='javascript'> var num = ".$rows."; for (i=0; i<num; i++) { id = 'distribution_id_'+i; distribution_id = document.getElementById(id).value; id_result = 'result_send_'+i; http = createRequestObject(); http.function(){ if(http.readyState == 4) { if(http.status == 200) { document.getElementById(id_result).innerHTML=http.responseText; } } http.open('get', 'func.php?send_distribution='+distribution_id, true); http.send(null); } } </script>"; |
|
Я уже всю голову сломал :( Уже все перепробовал что только можно
Методом alert(i); выяснил, что до строки http.onreadystatechange i выдает согласно циклу, а уже внутри http.onreadystatechange выдает номер последнего цикла window.onload = function(){ for (i=0; i<4; i++) { id = "distribution_id_"+i; distribution_id = document.getElementById(id).value; id_result = "result_send_"+i; var http = createRequestObject(); if( http ) { http.open("get", "func.php?send_distribution="+distribution_id, true); /* ЗДЕСЬ alert(i) выдает номер согласно циклу от 0 до 4 */ http.onreadystatechange = function () { /* ЗДЕСЬ alert(i) выдает номер 4 */ if(http.readyState == 4) { document.getElementById(id_result).innerHTML=http.responseText; return; } } http.send(null); } else { document.location = "index.php"; } } } :help: :help: :help: :help: :help: :help: :help: |
Цитата:
http.open("get", "func.php?send_distribution="+distribution_id, false); |
Цитата:
|
Цитата:
|
devote,
Значит надо переделать, пусть пойдёт читать как. |
Часовой пояс GMT +3, время: 21:37. |