Автоматический 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, время: 18:46. |