Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Передача переменной из кода javascript на другую страницу.Нужна помощь. (https://javascript.ru/forum/misc/10750-peredacha-peremennojj-iz-koda-javascript-na-druguyu-stranicu-nuzhna-pomoshh.html)

pakman 19.07.2010 13:37

Передача переменной из кода javascript на другую страницу.Нужна помощь.
 
Вот код, отсюда мне нужна передать значение переменной на другую страницу:
<SCRIPT LANGUAGE="javascript">
function tudasuda(){
if (confirm("Уверены, что хотите удалить оценки?")) {
		document.location="redacclass.php";
					  }
	else {
	alert("Оценки не были удалены");
	}
  }
</SCRIPT>

Само значение переменной можно вытащить вот так:
document.getElementsByName('class')[0].value);

Вызывается скрипт с помощью кнопки:
<input type=button name=c value='Стереть все оценки' onclick='tudasuda()'>
В js пока не разбираюсь, только немного откопал, а вот как передать значение переменной не могу найти. Помогите пожалуйста. :help:

Vulkan 19.07.2010 13:54

<SCRIPT LANGUAGE="javascript">
function tudasuda(){
var some=document.getElementsByName('class')[0].value);
if (confirm("Уверены, что хотите удалить оценки?")) {
document.location="redacclass.php?id="+some;
}
else {
alert("Оценки не были удалены");
}
}
</SCRIPT>

На следующей странице значение можешь вытащить так:
<?php 
echo "$id"; //вывести на экран значение переменной
?>

А вообще вы не в тот раздел всунули тему.

pakman 19.07.2010 14:01

Очень извиняюсь, больше не повторится.. А за ответ выражаю большую благодарность! уже весь день бъюсь над этим:) большое спасибо!!!

x-yuri 19.07.2010 23:25

Цитата:

Сообщение от Vulkan
На следующей странице значение можешь вытащить так

register_globals? O.o
лучше $_GET['id'] и отключить register_globals

и "Оценки не были удалены" не надо выводить, пользователь обычно знает, что он нажал

pakman 20.07.2010 08:28

у меня отключено:)) мне надо было лишь узнать как передать переменную.. а вытащить тут уже проблем нет.. ну я пользуюсь $_REQUEST['id']:) А про оценки..работают с ними неопытные учителя..они могут промахнуться или нечаяно нажать не то.. для этого вывожу сообщение, чтобы они поняли что произошло:)

pakman 22.07.2010 15:49

у меня возник вопрос можно яваскриптом передать параметры скрыто? типо как через POST? А ещё возникла проблема и только в Opera, буквально вчера её не было: в любом файле *.php пишешь "echo $_REQUEST['id'];" и результат выдаёт "6". Откуда это берётся не знаю, из-за этого один скрипт перестал работать. Конечно можно поменять на "echo $_GET['id'];" , но я хочу разобраться в чём проблема.

DooMer 22.07.2010 17:38

pakman, жжеш ))
www.site.com&id=6
на серваке будет
$_REQUEST['id'] = 6
$_GET['id'] = 6
$_POST['id'] будет несуществовать

а если пост запросом передать айди
то будет
$_REQUEST['id'] = 6
$_GET['id'] будет несуществовать
$_POST['id'] = 6

а вообще читай тут

DooMer 22.07.2010 17:40

Цитата:

Сообщение от pakman (Сообщение 64804)
у меня возник вопрос можно яваскриптом передать параметры скрыто? типо как через POST?

читаем AJAX

pakman 22.07.2010 18:27

Цитата:

Сообщение от DooMer (Сообщение 64827)
pakman, жжеш ))
www.site.com&id=6
на серваке будет
$_REQUEST['id'] = 6
$_GET['id'] = 6
$_POST['id'] будет несуществовать

а если пост запросом передать айди
то будет
$_REQUEST['id'] = 6
$_GET['id'] будет несуществовать
$_POST['id'] = 6

а вообще читай тут

Я это всё знаю. Вы меня не поняли просто. Вот сейчас я создам php файл любой напишу лишь там одну строчку "echo $_REQUEST['id'];", залью на джино и открою с помощью Opera. Он выдаст значение "6".
И это случилось только сегодня и я не знаю почему. Дело в том что у меня из php файла яваскриптом передаётся значение через GET.
Вот: "<input type='button' value='удалить' onclick='document.location=\"delucht.php?&id=251\" '>". На другом php файле я считываю id. Обычно я делаю это REQUEST'ом. И тут мне Opera выдёт "6" - и так на всех страницах. Конечно если поставить $_GET['id'] всё будет нормально, но я хочу разобраться что случилось..

DooMer 22.07.2010 18:32

мб у тебя в пхп скрипте гдето стоит $_REQUEST['id']=6; ???

Kolyaj 22.07.2010 18:42

Кука id небось есть. Вообще $_REQUEST противопоказано к использованию.

DooMer 22.07.2010 18:52

Цитата:

Сообщение от Kolyaj (Сообщение 64842)
Вообще $_REQUEST противопоказано к использованию.

аргументы ?

Kolyaj 22.07.2010 19:03

pakman привёл вполне себе аргумент, вы его не видите?

DooMer 22.07.2010 19:07

Kolyaj,
тоесть если бы он привел такой же аргумент с $_GET, то $_GET был бы противопоказан к использованию ? =)

x-yuri 22.07.2010 19:08

Цитата:

Сообщение от pakman
И тут мне Opera выдёт "6" - и так на всех страницах

ну хорошо хоть не 42 :)

Цитата:

Сообщение от DooMer
аргументы ?

Цитата:

Сообщение от pakman
А ещё возникла проблема и только в Opera, буквально вчера её не было: в любом файле *.php пишешь "echo $_REQUEST['id'];" и результат выдаёт "6". Откуда это берётся не знаю, из-за этого один скрипт перестал работать.

хотя странно, что скрипт перестал работать, вроде по умолчанию куки после POST/GET. Кроме того, изменение variables_order может поломать сайт или ты можешь не сразу догадаться, почему сайт не работает на сервере. Ну и, возможно, упрощается взлом сайта, потому что можно отправлять POST-запросы через строку адреса (так, просто мысль).

Цитата:

Сообщение от DooMer
Kolyaj,
тоесть если бы он привел такой же аргумент с $_GET, то $_GET был бы противопоказан к использованию ? =)

он не мог привести такой же аргумент

pakman 23.07.2010 07:11

Сейчас всё нормально стало. Так вот я так и не понял, но неполадки однозначно были или с сервером или с оперой. В общем я решил очистить куки, потом захотел проверить, и вижу что на мой сайт не заходит и выводит ошибку, файловый менеджер не может открыть, в аккаунт на джино не могу зайти. Через часа два захожу я через оперу на сайт и всё заработало!:) я конечно рад, но так и не получилось понять или было виновато куки или сервер. Так же решил проверить variables_order, но ни в встренном phpMyadmin'е ни в личном аккаунте jino я не нашёл этих настроек.

Kolyaj 23.07.2010 08:29

Цитата:

Сообщение от DooMer
тоесть если бы он привел такой же аргумент с $_GET, то $_GET был бы противопоказан к использованию ? =)

Какой такой же? В get ничего не передаю, а в $_GET что-то есть? Так не бывает.

Данные нужно брать оттуда, откуда они ожидаются, а не откуда получится.

x-yuri 23.07.2010 09:36

Цитата:

Сообщение от pakman
Так же решил проверить variables_order, но ни в встренном phpMyadmin'е ни в личном аккаунте jino я не нашёл этих настроек.

http://php.net/manual/en/function.phpinfo.php

наверное, желание использовать $_REQUEST говорит о том, что при отправке форм на сервер тот же запрос выдает страничку, чего быть не должно. POST-запросы (после обработки) должны перенаправляться на GET-запросы

pakman 23.07.2010 10:16

Цитата:

тот же запрос выдает страничку, чего быть не должно
вот это не совсем понял.
А так использую $_REQUEST потому что он универсален.

x-yuri 27.07.2010 09:19

в конце обработки POST-запроса должно быть header('Location: ...'). Потому что POST-запрос - отправка данных на сервер, а GET-запрос - получение данных с сервера. А потом спрашивают, как избавиться от предложения браузера отправить форму еще раз при обновлении странички...

Цитата:

Сообщение от pakman
А так использую $_REQUEST потому что он универсален

мышки резались, кололись, но продолжали есть кактус ;)

pakman 27.07.2010 09:56

Теперь понятно:)
Цитата:

Сообщение от x-yuri (Сообщение 65273)
мышки резались, кололись, но продолжали есть кактус ;)

Надо както исправляться:))просто уже привык к этому реквесту:)

JustRaider 27.07.2010 15:28

Интересная темка, я тоже как-то задавался этим вопросом, но не так серьезно как автор...

pakman 01.08.2010 09:57

опять эта шестёрка появилась:D короче убираю я этот реквест и ставлю гет:)

x-yuri 01.08.2010 18:25

в любом случае, тебе стоило бы разобраться, откуда эта шестерка берется

pakman 02.08.2010 10:35

угу, только попозже, сейчас не так много времени.. скорей всего изза изменённой по умолчанию(наверное) "variables_order".. а 6 скорей всего как и говорили залезает в куки..так как на любой странице она вылазит, и только в том браузере который использую чаще, ну и последнее то что в $_REQUEST['id'] id - думаю самая распространённая переменная:) осталось лишь найти эту директиву и поменять:)


Часовой пояс GMT +3, время: 01:00.