Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2012, 19:00   #1
Dexes
Пользователь
 
Регистрация: 27.12.2011
Сообщений: 86
По умолчанию Сохранение данных в сессию через AJAX

Функция в JS:
Код:
function city_save(name) {
	$.ajax({
		type: "POST",
		url: "/_service/save_city.php",
		data: "city="+name,
		success: function(save) {
			$("#cityget-form").dialog('close');
		}
	});
}
В save_city.php содержатся следующие строки
PHP код:
<?
    session_start
();
    
$_SESSION['geolocation'] = 'save_city.php'//Для отладки
    
if (isset($_POST['city'])) {
        
$_SESSION['geolocation'] = $_POST['city'];
    }
?>
cityget-form закрывается на сайте когда вызывается эта функция, а вот save_city.php не исполняется. В чем может быть дело?
Dexes вне форума Ответить с цитированием
Старый 15.01.2012, 21:44   #2
iankov
Форумчанин
 
Регистрация: 04.01.2009
Сообщений: 188
По умолчанию

Если save_city.php не исполняется, значит его просто не вызывают. Любой пхп скрипт исполнится при его вызове, естественно при корректно настроенном сервере.
iankov вне форума Ответить с цитированием
Старый 16.01.2012, 10:44   #3
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Установите xDebug и настройте профилирование, а долго искать ошибку будете.
Виталий Желтяков вне форума Ответить с цитированием
Старый 16.01.2012, 13:49   #4
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

http://api.jquery.com/jQuery.post/
Обратите внимание на формарование data параметров
Код:
$.post("test.php", { name: "John", time: "2pm" },
   function(data) {
     alert("Data Loaded: " + data);
   });
а хотя правильно все:
http://api.jquery.com/jQuery.ajax/

upd
почти все
Код:
var menuId = $("ul.nav").first().attr("id");
var request = $.ajax({
  url: "script.php",
  type: "POST",
  data: {id : menuId},
  dataType: "html"
});

request.done(function(msg) {
  $("#log").html( msg );
});

request.fail(function(jqXHR, textStatus) {
  alert( "Request failed: " + textStatus );
});

Последний раз редактировалось psycho-coder; 16.01.2012 в 13:51.
psycho-coder вне форума Ответить с цитированием
Старый 16.01.2012, 14:40   #5
Dexes
Пользователь
 
Регистрация: 27.12.2011
Сообщений: 86
По умолчанию

Не понятны вот эти строчки:
Код:
var menuId = $("ul.nav").first().attr("id");
...
  dataType: "html"
На интуитивном уровне сделал вот так.
Код:
function city_save(name) {
	var c = $("ul.nav").first().attr(name);
	var request = $.ajax({
		url: "/_service/save_city.php",
		type: "POST",
		data: {city : c},
		dataType: "html"
	});

	request.done(function(msg) {
		$("#cityget-form").dialog('close');
	});
}
Работать естественно это не начало. "ul.nav" не понял для чего, и dataType у меня точно не "html", но и пока не знаю что т.к. не понял до конца для чего датаТайп.
P.S. Даже форма close'иться перестала.
Dexes вне форума Ответить с цитированием
Старый 16.01.2012, 17:11   #6
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

попробуйте как в этом примере
Код:
$.post("test.php", { name: "John", time: "2pm" },
   function(data) {
     alert("Data Loaded: " + data);
   });
вариант вашего кода (не проверял)
Код:
function city_save(name) {
	$.post("/_service/save_city.php",
		{city: name}, function () {})
		.success (function(save) {
			$("#cityget-form").dialog('close');
		});
	);
}
psycho-coder вне форума Ответить с цитированием
Старый 16.01.2012, 18:03   #7
Кирил свердлов
 
Регистрация: 15.01.2012
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Виталий Желтяков Посмотреть сообщение
Установите xDebug и настройте профилирование, а долго искать ошибку будете.
Подскажите пожалуйста как можно с вами связаться есть один важный вопрос?
Кирил свердлов вне форума Ответить с цитированием
Старый 16.01.2012, 20:16   #8
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Цитата:
Подскажите пожалуйста как можно с вами связаться есть один важный вопрос?
Тут пишите.
Виталий Желтяков вне форума Ответить с цитированием
Старый 16.01.2012, 21:30   #9
Кирил свердлов
 
Регистрация: 15.01.2012
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Виталий Желтяков Посмотреть сообщение
Тут пишите.
Просто вопрос не по этой теме ,в той теме в которой меня интересовало я написал а Вы видно туда не заходите....если не трудно можете мне на мыло написать вот мое: prof-snab@mail.ru
ну или свой любой контакт оставьте я опишу интересующую мою проблему,заранее благодарен.
Кирил свердлов вне форума Ответить с цитированием
Старый 17.01.2012, 19:25   #10
Dexes
Пользователь
 
Регистрация: 27.12.2011
Сообщений: 86
По умолчанию

Код:
function city_save(name) {
	var jq = $.post("/_service/save_city.php", { city: name } );
	jq.success( function() {
		alert("success");
		$("#cityget-form").dialog('close');
	} );
}
И этот вариант не пашет
Код:
function city_save(name) {
	$.post("/_service/save_city.php",
		{city: name})
		.success (function(save) {
			alert("success");
			$("#cityget-form").dialog('close');
		});
}
И этот, при чем в обоих случаях даже форма не закрывается.
При таком варианте форма закрывается, alert выводится, но PHP как будто не прокатывается.
Код:
function city_save(name) {
	$.ajax({
		type: "POST",
		url: "/_service/save_city.php",
		data: "city="+name,
		success: function(save) {
			$("#cityget-form").dialog('close');
			alert('success');
		}
	});
}
ADD

Додумался наконец то (не знаю почему не раньше) просто через строку браузера открыть save_city.php
Он просто не изменяет сессионные переменную.
Код:
<?
	session_start();
	$_SESSION['geolocation'] = 'save_city.php';
	if (isset($_POST['city'])) {
		$_SESSION['geolocation'] = $_POST['city'];
	}
?>
Далее попробовал так.
Код:
<?
	echo '111111111111111111';
	session_start();
	$_SESSION['geolocation'] = 'save_city.php';
	if (isset($_POST['city'])) {
		$_SESSION['geolocation'] = $_POST['city'];
	}
?>
Выдал уже не пустую страницу.
А вот такое сообщение
111111111111111111
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Z:\home\selphi.ru\www\_service\save _city.php:2) in Z:\home\selphi.ru\www\_service\save _city.php on line 3
Где, Line 3 - "session_start();"
Из-за чего может возникать подобная ошибка?
Dexes вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Mootools ajax вывод данных madion JavaScript, Ajax 2 27.01.2011 16:30
Выбор дива из данных полученных через AJAX. MarkStaver JavaScript, Ajax 4 14.01.2011 16:31
запись в сессию через форму Gennadiy PHP 13 13.01.2011 00:40
Сохранение всех данных в бд через DBGrideh postaveche БД в Delphi 0 15.09.2010 19:53