из окна сообщения на новую страницу
Есть вот такой код:
<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, время: 13:35. |