Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Надо в ссылку меню адрес считывать из БД в момент перехода. (https://javascript.ru/forum/dom-window/37893-nado-v-ssylku-menyu-adres-schityvat-iz-bd-v-moment-perekhoda.html)

andreydial 13.05.2013 17:59

И все же нет.
Часть кода отправки письма юзеру, который вызывается попапом на той же странице.
// отправка письма по ссытке вверху страницы -------------------------

if ($action=="sendLeter")
{
	$qr = "SELECT file FROM filekml WHERE id = 1";
     	$resultkml = query($qr);
     	$searchkml2 = mysql_result($resultkml,'file');
            $customkml = $searchkml2;

	$text_letter="Send_to_mobile.htm";
	$url = "";
            $title_mess = "";
            $urlkml = "This link contain search map result. Enjoy. $customkml";

И в ней все работает корректно. Т.е. правильно.

danik.js 13.05.2013 18:12

Ну ищи код, который записывает в базу эти самые файлы. Видимо на момент запроса в бд, он еще не записан.

andreydial 13.05.2013 22:45

Цитата:

Сообщение от danik.js (Сообщение 250255)
Ну ищи код, который записывает в базу эти самые файлы. Видимо на момент запроса в бд, он еще не записан.

Если есть возможность, посмотри. Сайт ввв.trademosh.com Главная страница. Внизу есть ссылка Search result on map. Вверху есть линк Share map. Если осуществить поиск по сайту сгенерируется файл случайное_название.kml Внизу линк будет ссылаться на предыдущий файл, а форма отправки письма share map отправит на почту правильный файл (надо только себе мыло отправить и пройти по ссылке). Если не перезагружая страницу еще раз попробовать перейти, то переход будет осуществлен по старому имени. Если перезагрузить страницу то внизу ссылка будет на тот файл который пришел на мыло. Надеюсь не совсем запутанно рассказал.

Это я к тому что код файлик то записал, а считывания не происходит.

Ниже код генерации контента на сайт после поиска и генерация сабжевого файла. Не сильно нужный код я вырезал.
Кусочек кода механизма поиска:
$qr = "SELECT * FROM markers WHERE   ( ( {$location} ) AND ( {$search} ) AND price BETWEEN {$minPrice} AND {$maxPrice}  ) AND varifMail='Ok' ORDER BY `date` DESC ";
 $data["qr"]= IS_DEBUG===TRUE?$qr:"is debug off";
 $_SESSION['query']=$qr;

кучка кода, затем генерация контента на сайт
if (!empty($isMobile))
{
	//echo "Search result file kml";
	$d = _t::contentAddsMobile($resForData);
}else
{
	//echo "Search result file kml";
	$d = _t::contentAddsDesctop($resForData);

потом еще несколько строк кода, и наконец генерация необходимого файла и его имени
addKML("searched",$address,"","","","","","","",$lon,$lat);
   // End XML file
   //формируем переменную имени кастомного kml файла
   mt_srand((double)microtime()*1000000);
   //$name_kml = mt_srand();
   $searchkmlrand = mt_rand();
   $searchkmlrand .= ".kml";
   $searchkml = $searchkmlrand;

	$qr = "UPDATE filekml SET file = '$searchkml' WHERE (`id`='1')";         //UPDATE filekml SET file = '0' WHERE (`id`='1')
	query($qr, $searchkml); //echo mysql_error();
   endKML($searchkml);
   exit(json_encode($data));

}

danik.js 14.05.2013 05:50

Да че ж ты мозг трахал все это время. У тя поиска на аяксе. Он обновляет содержимое div'а с результатами, а ссылка так и остается старая. Тебе нужно это исправить - передавать вместе с результатами еще и имя файла, и обновлять ссылку.

andreydial 14.05.2013 14:30

Ты говоришь слова,в которых мне понятны только буквы :(.
Подскажи, как мне это исправить, как передавать имя файла и обновлять ссылку. Пожалуста:cray:
Ибо слаб я еще.
Это вот здесь contentAddsMobile(desctop) надо формировать имя файла?

danik.js 14.05.2013 14:48

Надо добавить имя файла в переменную $data. Это на сервере. А на клиенте, в обработчике ответа сервера извлечь имя файла и обновить ссылку.

andreydial 14.05.2013 15:39

вот эта чаcть кода остается без изменений
<a href="https://maps.google.com/maps?q=http://trademosh.com/kml/<? echo $file = get_my_file(); ?>" target="_blank">SEARCH RESULT on MAP</a>



а переменная customkml и функция get_my_file() должна быть там где генерируется $data
function get_my_file() {
	    $qr = "SELECT file FROM filekml WHERE id = 1";
	    $resultkml = query($qr);
	    $searchkml2 = mysql_result($resultkml,'file');
	    $customkml = $searchkml2;
	    return $customkml;
	    }
	?>

Я правильно понимаю?

danik.js 14.05.2013 16:03

Цитата:

Сообщение от andreydial
Я правильно понимаю?

Нет. Перед exit(json_encode($data)) записать в $data $searchkml

Ну типа $data['file'] = $searchkml;

А в js обновлять ссылку, используя полученный file

var href = $('a.maplink').prop('href');
href = href.substring(0, href.lastIndexOf('/')) + file;

$('a.maplink').prop('href', href);

andreydial 14.05.2013 16:23

Огромное спасибо, пока конечно ничего мне непонятно, буду разбираться :write:
Но хотябы понятно куда двигаться.


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