из окна сообщения на новую страницу
Есть вот такой код:
<input type="submit" value=" Сохранить результат " onClick="alert("Спасибо за участие!")">
При нажатии на submit появляется окно с сообщением 'Спасибо за участие!', а как сделать, чтобы при нажатии на "ок" происходил переход на другую страницу. (Например, submit находится на странице note.php, а после нажатия "ок" должен открыться index.php) ? как вариант, например, можно вызвать функцию:
<script language="JavaScript">
<!--
function but1() {
alert("Спасибо за участие!"), top.location.href="index.php" } ;
//-->
</script>
... <input type="submit" value=" Сохранить результат " onClick="but1()"> но вот ссылка почему-то не срабатывает |
Цитата:
<input type="submit" value=" Сохранить результат " onClick="alert('Спасибо за участие!'); location.href='http://domain.com/index.php'">
|
B~Vladi, не получается пройти по ссылке. остается та же страница
|
Странно. Это во фрейме делается?
|
между прочим действительно странно. вставил на "чистый" лист - заработало, а на нужном не срабатывает.
Нет, у меня не фрейм |
насколько я понял, дело вот в чем:
<form name="first" action="" method="POST"> но именно такой переход action мне нужен, так как скрипты с вычислениями находятся на этой странице, а данные туда передаются из заполненной формы(checkbox и button). То есть я ее заполняю, нажимаю submit, значения передаются в скрипт, где они обрабатываются и записываются в файл. хм... а что можно сделать в таком случае? |
Так тебе надо данные на note.php передавать но пользователя послать на index.php?
|
ajax-ом отправляете данные куда нужно, например в файл index.php, а после этого запускаете location.href='note.php' или наоборот, в общем подставить нужное, в итоге данные улетают в одну сторону, а пользователь в другую ;) или никуда не улетает, а получает ответ от ajax-а и выводит нужное уведомление: "Данные получены, вы купили корову, спасибо!"
|
Цитата:
|
для того чтобы это сделать нормальным способом, это нужно делать на сервере, т.е. в note.php проверять если есть $_POST['переменная'] из формы, то делать обработку формы, а потом:
header("Location: index.php);
, но так как Вы хотите делать это с помощью js и вариант с ajax Вас по какой-то загадочной причине не устраивает, то это можно делать так: грузим note.php c формой, затем отправляем данные с указанием action: note.php?submit, смотрим js-ом url :document.location.href и если он: note.php?submit отправляем пользователя на location.href = 'index.php' |
Гозар. После потправки формы скрипты не работают. ед выход это как ты сказал через перенаправление или же ajax
|
Вот я и проверяю через
if(!empty($_POST)) После всей обработки вставил
header("Location: http://net.ru/index.php");
В результате, когда я в строке браузера набираю http://net.ru/note.php сразу же происходит редирект на index.php |
Цитата:
Цитата:
<input type="text" name="firstname">
if(isset($_POST['firstname'])){
//тут обрабатываем данные из формы ($_POST['firstname'])
header("Location: index.php");
}
|
Цитата:
Цитата:
Цитата:
|
Короче делаю вот так:
<?
if(!empty($_POST['first'])) {
... //обрабатываю данные формы
<script language="JavaScript">
<!-- function but1() { //вывожу сообщение
alert('Спасибо за участие!')};
//-->
</script>
<?header("Location: http://net.ru/index.php");}?> //тут должен произойти переход на index.php
...
<form name="first" action="" method="POST">
...
<input type="submit" value=" Сохранить результат" onClick="but1()">
подскажите, где ошибка, редирект не происходит? |
то что ты написал не сработает походу, т.к. браузер получает заголовок перенаправления и походу даже ничего не выполнит, а перейдет по адресу
Вывод сообщения спасибо за участи надо делать до отправки формы или же на index.php перехватывать сессионную переменную установленную при обработке данных и выводить сообщение, но проще сделать первым способом - перед отправкой,хот ятут если какая ошибка в данных, например неправильно чето заполнено то сообщение будет выскакивать независимо от этого... а можно еще сделать через js
if (установлена переменная){
обработка
?>
вывод кода js в котором alert и location.href=...
<?
return;
}
вывод формы...
|
<?php
if(!empty($_POST['first'])) {
... //обрабатываю данные формы
header("Location: http://net.ru/index.php");
}
?> //тут должен произойти переход на index.php
на index.php вешаете js скрипт, который смотрит откуда пришел юзер и если document.referrer == 'http://net.ru/note.php?submit'выводите свое сообщение:
<body>
<script type="text/javascript">
if(document.referrer == 'http://net.ru/note.php?submit'){ //вывожу сообщение
alert('Спасибо за участие!')
};
</script>
какой-то, гоVнокод получается, если принцип понятен, то доделаете сами, а вообще я бы еще мозгами пораскинул ;) |
Цитата:
|
все, заработало. сделал вот так:
if(!empty($_POST)) {
... //здесь обрабатываем данные из формы
header("Location: http://net.ru/index.php");
}?>
<script language="JavaScript">
<!--
function but1() {
alert('Спасибо за участие!')};
//-->
</script>
а ларчик-то просто открывался :) |
Цитата:
language="JavaScript" чтобы у Вас там не получалось. |
| Часовой пояс GMT +3, время: 01:46. |