Как передать переменную из Ajax в PHP

grom

Новичок
Прочитал кучу справок и попробовал кучу примеров, но ничего не работает
Вот очень удобный пример, если переменная из ajax передалась нормально то появится надпись Вы нажали на кнопку и номер кнопки

У меня ничего не появляется, при нажатии просто добавляется знак # в конец адресной строки браузера
весь код запускаю на локальном сервере в index.php

Пробовал в IE, firefox, Chrome в window7

В чем проблема настройки браузера или конфигурация апачи или код у меня все таки корявый?

PHP:
<?php
if (isset($_POST['test'])) {
die('Вы нажали на кнопку: ' . $_POST['test']);
}
?>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
</head>
<?//echo $_POST['test'];?>


<span id="spantabs"><a href="#" onClick="set_mode_view(0);">закладка 1</a></span>
<span id="spantabs"><a href="#" onClick="set_mode_view(1);">закладка 2</a></span>
<span id="spantabs"><a href="#" onClick="set_mode_view(2);">закладка 3</a></span>
<span id="spantabs"><a href="#" onClick="set_mode_view(3);">закладка 4</a></span>
<span id="spantabs"><a href="#" onClick="set_mode_view(4);">закладка 5</a></span>

<script>
function set_mode_view(id)
{
    
//alert(id)
$.ajax({
url:'index.php',
data:{test:id},
success:function(data){
alert(data)
}
})
}
</script>
 

grom

Новичок
shelestov
Иправил, но ничего не изменилось, пробовал и GETом получуть переменную пхп и указать тип POST для аякс, результата одинаковый, переменная пхп не передаеться

PHP:
	<?php
if (isset($_GET['test'])) {
die('Вы нажали на кнопку: ' . $_GET['test']);
}

echo $_GET['test'];
?>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
</head>
<span id="spantabs"><a href="#" onClick="set_mode_view(0);">закладка 1</a></span>
<span id="spantabs"><a href="#" onClick="set_mode_view(1);">закладка 2</a></span>
<span id="spantabs"><a href="#" onClick="set_mode_view(2);">закладка 3</a></span>
<span id="spantabs"><a href="#" onClick="set_mode_view(3);">закладка 4</a></span>
<span id="spantabs"><a href="#" onClick="set_mode_view(4);">закладка 5</a></span>

<script>
function set_mode_view(id)
{
$.ajax({
url:'index1.php',
data:{test:id},
success:function(data){
alert(data)
}
})
}
</script>
 
Последнее редактирование:

grom

Новичок
то есть во всплывающем сообщении от аякс alert(data) все ок пишет переменую $_GET['test']);, но мне то она нужна в пхп коде чтобы использовать, а любой вызов из пхп $_GET['test']); приводит к ошибке
 

shelestov

я тут часто
то есть во всплывающем сообщении от аякс alert(data) все ок пишет переменую $_GET['test']);, но мне то она нужна в пхп коде чтобы использовать, а любой вызов из пхп $_GET['test']); приводит к ошибке
Вы не понимаете смысл аякс запросов. Наверное в этом дело.
 

grom

Новичок
Andkorol
Ответа не нашел

shelestov
То что я не понимаю это и так понятно, покажите пример получения переменной из аякс в пхп чтобы я понял
 

shelestov

я тут часто
Вы делаете запрос к скрипту index1.php, вот там то и надо получать переменные.
 

grom

Новичок
shelestov
Я там и получаю, создал несколько php файлов один из них index1.php в котором и проверяю данный конкретный пример
И еще раз в alert(data) все ок переменная из PHP есть и отображаеться, но в самом PHP я немогу получить к ней доступ в этом вся проблема

то есть alert(data) отображает echo $_GET['test']; значение переменной $_GET['test']; это можно увидеть запустив мой код, а когда всплывающее окно alert(data) закрываю в PHP пишет Notice: Undefined index: test
 

Andkorol

Новичок
И еще раз в alert(data) все ок переменная из PHP есть и отображаеться, но в самом PHP я немогу получить к ней доступ в этом вся проблема
Как это не можешь – если в alert() у тебя как раз и выводится результат работы php-скрипта, с использованием переданной в него переменной $_GET['test']?
 

grom

Новичок
Andkorol
Ну так немогу выводит ошибку, запусти мой пример увидишь, в окне alert() я прям вижу значение переменной $_GET['test'], а когда всплывающее окно закрываю, на странице в браузере пишет Notice: Undefined index: test, то есть пхп эту переменную не увидел
 

Andkorol

Новичок
Ну так немогу выводит ошибку, запусти мой пример увидишь, в окне alert() я прям вижу значение переменной $_GET['test'], а когда всплывающее окно закрываю, на странице в браузере пишет Notice: Undefined index: test, то есть пхп эту переменную не увидел
Ну так здрасьте...
Её же изначально там и нет, при самом первом запуске скрипта нет никакой переменной $_GET['test'] – потому и Undefined index: test.
Это уже потом ты её передаешь, при помощи AJAX.
И тогда эта переменная вполне доступна в php-скрипте.
 

grom

Новичок
Andkorol
То что изначально ее там нет это понятно, но после того как я нажимаю ссылку она появляется в аякс и я жду ее в ПХП

где она доступна то, ты пример вообще запускал из ПХП я немогу достучаться к ней, на страницу в браузере я не могу получить значение этой переменной test
 

Andkorol

Новичок
где она доступна то, ты пример вообще запускал из ПХП я немогу достучаться к ней, на страницу в браузере я не могу получить значение этой переменной test
Ну бл*#%, у тебя ж в алерте выводится текст "Вы нажали на кнопку: 3" – так вот эта самая "3" откуда там появляется?
Это и есть значение твоей переменной $_GET['test'].
Ты ж даешь команду die() скрипту – вот он и умирает с этим текстом.
Но переменная-то там доступна – она же в текст передает своё значение.
Не чуди.
 

grom

Новичок
Andkorol
Я убрал этот die() в алерт передается весь хтмл код страницы, переменная во всплывающем окне так же есть, но когда закрываю окно, на странице в Браузере, ПХП так же не видит этой переменной.
Одно и тоже говорю уже несколько раз, незнаю как еще объяснить просто хочу увидеть эту переменную $_GET['test'] в окне броузера и все!
 

Andkorol

Новичок
просто хочу увидеть эту переменную $_GET['test'] в окне броузера и все!
PHP:
<?php
if (isset($_GET['test'])) {
	echo 'Вы нажали на кнопку: ' . $_GET['test'];
	die();
}
?>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
</head>
<span id="spantabs"><a href="#" onClick="set_mode_view(0);">закладка 1</a></span>
<span id="spantabs"><a href="#" onClick="set_mode_view(1);">закладка 2</a></span>
<span id="spantabs"><a href="#" onClick="set_mode_view(2);">закладка 3</a></span>
<span id="spantabs"><a href="#" onClick="set_mode_view(3);">закладка 4</a></span>
<span id="spantabs"><a href="#" onClick="set_mode_view(4);">закладка 5</a></span>
<br/><br/>
<div id="test_value"></div>
<script>
function set_mode_view(id)
{
	$.ajax({
		url:'index1.php',
		data:{test:id},
		success:function(data){
			$('#test_value').text(data);
		}
	});
}
</script>
Are you happy now? ©
 

grom

Новичок
Andkorol
Конечно нет, это не переменная $_GET['test'] , это как я понимаю просто вывод в браузер от аякс, а мне нужна переменная PHP
 
Сверху