@4Geka
PHP

Как занести выбранный город в сессию $_SESSION PHP?

Есть html страница на которой выбираются города из базы mysql:
<form action="" method="post">
					<h2 class="main_title_n5">Выберите город</h2>
					<div class="field_form_n4">

						<div class="out_field">
							<input AUTOCOMPLETE="off" id="sr_form_n4" type="hidden" name="region"/>
							<input AUTOCOMPLETE="off" id="sc_form_n4" type="text" name="city" placeholder="Выбор города"/>
							<div id="list_found_city">
								<div id="list_out_found_city">
									<ul id="list_inner_found_city" style="color: #111;">

									</ul>
								</div>
							</div>
						</div>
						<input data-region="" data-city="" id="sc_form_n5" type="hidden" name="city"/>
					</div>
					<div><a href="" id="sub_enter_form_n4" class="n_change_comm">Выбрать</a></div>
				</form>


А потом выводится выбранный город на этой же странице:
<p><span id="simple_txt_n1">Ваш город: </span><span class="showMyCity" id="h_bn1_city"></span></p>


Есть JS класс отвечающий за выбор городов:
window.onload = function () {
	function closeListCityForm(){
		box4.style.display = 'none';
		return false;
	};

	function openListCityForm(){
		box4.style.display = 'block';
		return false;
	};
	function searchCity(){
		var q = sc_form_n4.value;
		//var region_id = sc_form_n6.getAttribute('data-id');
		//var name_region = sc_form_n6.value;
		if(q.length > 0){
			$.ajax({
				type: "POST",
				url: "/index/index",
				data: "sc=1&q="+q,
				success: function(msg){
					var res = JSON.parse(msg);

					list_inner_found_city.innerHTML = '';
					var i = 0;
					var html = '';
					list_found_city.style.display = 'block';
					if(res.length > 0){
						for(i; i < res.length; i++){
							//var region = res[i]['region'].replace(/(^\s+|\s+$)/g,'');
							//var title = res[i]['title'].replace(/(^\s+|\s+$)/g,'');
							var region = res[i]['region'];
							var title = res[i]['title']
							if(res[i]['region']){
								if(res[i]['priority'] == 1){
							html +=''</b><br/><span class="li_filt_reg">'+region+'</span></li>';
								}
					
					list_inner_found_city.innerHTML = html;
				}
			});
		}
		else{
			var html = '';
			html +=''

			list_inner_found_city.innerHTML = html;
		};
	};

	function selectRegion(event){
		// получить объект событие.
		// вместо event лучше писать window.event
		event = event || window.event;
		// кросс-браузерно получить target
		var target = event.target || event.srcElement;
		
		while (target != this){
			if (target.className == 'li_filt'){
				var val = target.getAttribute('value');
				var data_id = target.getAttribute('id');
				list_found_region.style.display = 'none';
				sc_form_n6.value = val;
				$('#sc_form_n4').removeAttr('disabled');
				sc_form_n6.setAttribute('data-id',data_id);
				break;
			};
			target = target.parentNode;
		};
	};

	function selectCity(event){
		// получить объект событие.
		// вместо event лучше писать window.event
		event = event || window.event;
		// кросс-браузерно получить target
		var target = event.target || event.srcElement;

		while (target != this){
			if(target.className == 'li_filt'){
				var data_region = target.getAttribute('data-region');
				sr_form_n4.value = data_region;
				var val = target.getAttribute('value');
				list_found_city.style.display = 'none';
				sc_form_n4.value = val;
				break;
			};
			target = target.parentNode;
		};
	};
	//если город ранее не был определен...
	if(!localStorage.getItem('city')){
		ymaps.ready(init);
	}
	//если определен, то просто подменяем данные
	else if(localStorage.getItem('city')){
		var city = localStorage.getItem('city');
		var region = localStorage.getItem('region');
		var geo = localStorage.getItem('geo');
		var coords = localStorage.getItem('coords');
		if(city){
			h_bn1_city.innerHTML = city;
			h_bn1_city.setAttribute('data-region',region);
			h_bn1_city.setAttribute('data-geo', geo);
			h_bn1_city.setAttribute('data-city', city);
			h_bn1_city.setAttribute('data-coords', coords);
			if(typeof(regnet) == 'object'){
				//regnet.fly(coords, 10);

				ymaps.ready(function(){regnet.fly(coords, 10);});

			};
		}
		getContact(true);
	}
	else{
		ymaps.ready(init);	
	}
	function queryChangeCity(){
		var q = sc_form_n4.value;
		var region = sr_form_n4.value;
		$.ajax({
			type: "POST",
			url: "/index/index",
			data: "sc=1&q="+q,
			success: function(msg){
				var res = JSON.parse(msg);
				var i = 0;
				for(i; i < res.length; i++){
					
					if(res[i]['title'].replace(/(^\s+|\s+$)/g,'') == q && res[i]['region'].replace(/(^\s+|\s+$)/g,'') == region){
						h_bn1_city.setAttribute('data-region', region);
						h_bn1_city.setAttribute('data-geo', region +', '+q);
						h_bn1_city.innerHTML = q;
						box4.style.display = 'none';
						var position = {}; // пока пустой
						var myGeocoder = ymaps.geocode(region + ', ' + q);
						ymaps.geocode(region + ', ' + q, { results: 1 }).then(function (res) 
						{
							// Выбираем первый результат геокодирования
							var firstGeoObject = res.geoObjects.get(0);
							var coords = firstGeoObject.geometry.getCoordinates();
							h_bn1_city.setAttribute('data-coords',coords[0]+', '+coords[1]);
							localStorage.setItem('coords', coords);
							
							regnet.fly(coords,10);
						});
						position.city = city;
						position.region = region;
						position.geo = geo;
						position.coords = coords;
						localStorage.setItem('city', q);
						localStorage.setItem('region', region);
						localStorage.setItem('geo', region+', '+q);
	
						var city = res[i];
						getContact(false);
						break;
					};
				};
			}
		});
		
		return false;
	};


Необходимо занести выбранный пользователем город в $_SESSION, чтобы потом в php можно было бы сортировать записи по выбранному городу, вопрос в чем, как занести выбранный город в сессию, подскажите?
  • Вопрос задан
  • 488 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы