Есть 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 можно было бы сортировать записи по выбранному городу, вопрос в чем, как занести выбранный город в сессию, подскажите?