Просмотр полной версии : из окна сообщения на новую страницу
Есть вот такой код:
<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()">
но вот ссылка почему-то не срабатывает
language="JavaScript"
По какой книге учился? Сожги её.
<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, значения передаются в скрипт, где они обрабатываются и записываются в файл. хм... а что можно сделать в таком случае?
PeaceCoder
17.12.2009, 19:32
Так тебе надо данные на note.php передавать но пользователя послать на index.php?
ajax-ом отправляете данные куда нужно, например в файл index.php, а после этого запускаете location.href='note.php' или наоборот, в общем подставить нужное, в итоге данные улетают в одну сторону, а пользователь в другую ;) или никуда не улетает, а получает ответ от ajax-а и выводит нужное уведомление: "Данные получены, вы купили корову, спасибо!"
Так тебе надо данные на note.php передавать но пользователя послать на index.php?
Да, именно так. Учитывая, что note.php - это та страница, на которой расположены и формы, с которых я беру данные, и скрипты для подсчета и кнопка Submit.
для того чтобы это сделать нормальным способом, это нужно делать на сервере, т.е. в 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'
PeaceCoder
18.12.2009, 13:50
Гозар. После потправки формы скрипты не работают. ед выход это как ты сказал через перенаправление или же ajax
Вот я и проверяю через
if(!empty($_POST))
После всей обработки вставил header("Location: http://net.ru/index.php");
В результате, когда я в строке браузера набираю
http://net.ru/note.php сразу же происходит редирект на index.php
После потправки формы скрипты не работают. ед выход это как ты сказал через перенаправление или же ajax
нифига, Вы не поняли, обрабатываем данные если есть $_POST и выводим туже страницу, только адрес у нее теперь не note.php, а note.php?submit. Не надо меня путать:nono:
Вот я и проверяю через
if(!empty($_POST))
После всей обработки вставил header("Location: http://net.ru/index.php");
В результате, когда я в строке браузера набираю
http://net.ru/note.php сразу же происходит редирект на index.php
проверять нужно не просто $_POST, а POST['переменнаяИзФормы']
<input type="text" name="firstname">
if(isset($_POST['firstname'])){
//тут обрабатываем данные из формы ($_POST['firstname'])
header("Location: index.php");
}
PeaceCoder
18.12.2009, 15:08
Не надо меня путать
А я не путаю ;)
Вы не поняли, обрабатываем данные если есть $_POST и выводим туже страницу, только адрес у нее теперь не note.php, а note.php?submit.
атем отправляем данные с указанием action: note.php?submit, смотрим js-ом url :document.location.href и если он: note.php?submit отправляем пользователя на location.href = '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()">
подскажите, где ошибка, редирект не происходит?
PeaceCoder
18.12.2009, 16:39
то что ты написал не сработает походу, т.к. браузер получает заголовок перенаправления и походу даже ничего не выполнит, а перейдет по адресу
Вывод сообщения спасибо за участи надо делать до отправки формы или же на 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нокод получается, если принцип понятен, то доделаете сами, а вообще я бы еще мозгами пораскинул ;)
какой-то, гоVнокод получается, если принцип понятен, то доделаете сами, а вообще я бы еще мозгами пораскинул ;)
Ыыыыы))))))))))) действительно. че-то не работает:no:
все, заработало. сделал вот так:
if(!empty($_POST)) {
... //здесь обрабатываем данные из формы
header("Location: http://net.ru/index.php");
}?>
<script language="JavaScript">
<!--
function but1() {
alert('Спасибо за участие!')};
//-->
</script>
а ларчик-то просто открывался :)
<script language="JavaScript">
[/PHP]
хотябы уберите:
language="JavaScript"
чтобы у Вас там не получалось.
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot