Автоматический Submit нескольких форм
Сложилась такая ситуация: на странице есть несколько форм, по истечению таймера кнопки должны "сами нажиматься" и передавать данные на сервер. Вроде ничего сложного, написал таймер и все работает, только вот 1 незадача, выполняется submit только одной, самой первой формы.
Потратил уйму времени, но решения так и не нашел. Помогите разобраться, вот код без всяких таймеров. <html> <head> <script type = 'text/javascript'> function submit_forms () { document.forms[0].submit(); document.forms[1].submit(); } </script> </head> <body onload='submit_forms();'> <form id = 'form_1' action = 'http://www.google.ru/' method = 'post' target = '_blank'> <input type = 'hidden' name = 'input_1'> <input type = 'submit' value = 'Submit'> </form> <form id = 'form_2' action = 'http://www.google.ru/' method = 'post' target = '_blank'> <input type = 'hidden' name = 'input_2'> <input type = 'submit' value = 'Submit'> </form> </body> </html> |
<html> <head> <script type = 'text/javascript'> function submit_forms () { document.getElementById('submit1').click(); document.getElementById('submit2').click(); } </script> </head> <body onload='submit_forms();'> <form id = 'form_1' action = 'http://www.google.ru/' method = 'post' target = '_blank' onsubmit="alert('A')"> <input type = 'hidden' name = 'input_1'> <input id=submit1 type = 'submit' value = 'Submit'> </form> <form id = 'form_2' action = 'http://www.google.ru/' method = 'post' target = '_blank' onsubmit="alert('B')"> <input type = 'hidden' name = 'input_2'> <input id=submit2 type = 'submit' value = 'Submit'> </form> </body> </html> |
Да, субмиты происходят, но всеравно на сервер отправляются данные только с первой формы, так же в браузере открывается только окно открытое первой кнопкой.
<?php if (isset($_POST['input_1'])) { echo "1"; } elseif (isset($_POST['input_2'])) { echo "2"; } else { ?> <html> <head> <script type = 'text/javascript'> function submit_forms () { document.getElementById('submit1').click(); document.getElementById('submit2').click(); } </script> </head> <body onload='submit_forms();'> <form id = 'form_1' action = '' method = 'post' target = '_blank'> <input type = 'hidden' name = 'input_1'> <input id=submit1 type = 'submit' value = 'Submit'> </form> <form id = 'form_2' action = '' method = 'post' target = '_blank'> <input type = 'hidden' name = 'input_2'> <input id=submit2 type = 'submit' value = 'Submit'> </form> </body> </html> <?php } ?> |
Цитата:
|
Soeth,
:-E А как Вы определяете? inputы у Вас пустые! |
Вот вариант с таймером. Теперь кнопки срабатывают по очереди, одна за другой с заданным интервалом. И проблема не решена.
<?php if (isset($_POST['input_1'])) { echo "1"; } elseif (isset($_POST['input_2'])) { echo "2"; } else { ?> <html> <head> <script type = 'text/javascript'> seconds = 3; var x = document.getElementsByTagName('form'); var secondsArray = [x.length]; function decreaseTime() { for (var i = 1; i <= x.length; i ++) { var button = document.getElementById('button_'+i); //var form = document.getElementById('form_'+i); if (secondsArray[i] > 0) { secondsArray[i] -= 1; button.value = secondsArray[i]; } else { if (secondsArray[i] == 0) { secondsArray[i] = -1; button.click(); } } } setTimeout('decreaseTime()',1000); } window.onload = function() { for (var i = 1; i <= x.length; i ++) { var button = document.getElementById('button_'+i); button.value = seconds * i; secondsArray[i] = seconds * i; } setTimeout('decreaseTime()',1000); } </script> </head> <body> <form id = 'form_1' action = '' method = 'post' target = '_blank'> <input type = 'hidden' name = 'input_1'> <input id = 'button_1' type = 'submit' value = 'Submit' onsubmit="alert('A')"> </form> <form id = 'form_2' action = '' method = 'post' target = '_blank'> <input type = 'hidden' name = 'input_2'> <input id = 'button_2' type = 'submit' value = 'Submit' onsubmit="alert('B')"> </form> </body> </html> <?php } ?> |
Определяю PHP методом isset()
if (isset($_POST['input_1'])) { echo "1"; } |
Soeth,
Ни наю - могу показать что отправляются обе формы! <html> <head> <script type = 'text/javascript'> function submit_forms () { document.getElementById('submit1').click(); document.getElementById('submit2').click(); } </script> </head> <body onload='submit_forms();'> <iframe name=frame1></iframe><iframe name=frame2></iframe> <form id = 'form_1' action = 'http://www.okonti.ru/' method = 'post' target = 'frame1'> <input type = 'hidden' name = 'input_1' value="nput_1"> <input id=submit1 type = 'submit' value = 'Submit'> </form> <form id = 'form_2' action = 'http://www.rapidoloto.ru/' method = 'post' target = 'frame2' > <input type = 'hidden' name = 'input_2' value="nput_2"> <input id=submit2 type = 'submit' value = 'Submit'> </form> </body> </html> И в тесте хидера Инет запроса - две разных формы |
Цитата:
|
Цитата:
И спасибо за идею с iframe, она мне подходит даже больше, чем открытие новых вкладок и работает отлично! |
Часовой пояс GMT +3, время: 21:24. |