За последние 24 часа нас посетили 17654 программиста и 1656 роботов. Сейчас ищет 961 программист ...

map!P.S.Учусь...

Тема в разделе "JavaScript и AJAX", создана пользователем Panich, 21 дек 2011.

  1. Panich

    Panich Активный пользователь

    С нами с:
    10 май 2011
    Сообщения:
    548
    Симпатии:
    0
    Адрес:
    Ростов-Москва
    Только чур не смеяться!!!Я первый раз пробую писать с использованием ajax и квери:
    [js]$('.tooltip').click(function(e) {
    .stop()
    div.slideUp('fast');
    var element = $(this).children.find(div);
    var clickEL = element.attr('alt');
    $.ajax({
    type: 'POST',
    url: 'inc_rek.php',
    data: {place:clickEL},
    success:function(data){
    $.ajax({
    type: 'GET',
    url: 'inc_rek.php',
    data: {place:clickEL},
    success:function(data){
    var object = jQuery.parseJSON(data)
    var text = ''
    $.each(place, function(){
    text += '<div class="qwe">'
    text += '<span>' + object.nazvanie + '</span>'
    text += '<span>/' + object.syte_1 + '</span> '
    text += '<em>' + object.syte + '</em>'
    text += '</div>'
    load (function(){
    var div = $('<div class="qwe"></div>');
    div.slideDown()
    )}
    .appendTo('body');
    });
    }});
    });
    });[/js]
    А это тот самый inc_rek.php:
    PHP:
    1. include ("bdreklama.php");
    2.    $sql21 = "SELECT * FROM `reklama` WHERE `metro`='$vihino'";
    3.    $result21 = mysql_query($sql21, $dbrek)or die("Ошибка в запросе: " . mysql_error());
    4.    if (!$result21)
    5.    {
    6.    echo "ошибка - ".mysql_error()."<br>";
    7.    echo $sql21;
    8.    exit();
    9.    }
    И сама станица:
    HTML:
    1. <img class="map" src="../znakomstva/img_index/metro.gif" alt="" usemap="#Map">
    2.             <map name="map">
    3.                <div class="tooltip">
    4.                  <area name="modal" shape="rect" coords="411,42,420,49" href="#dialog3" alt="УЛИЦА ПОДБЕЛЬСКОГО">
    5.                    <div class="ul_podbelskogo">
    6.                      <span class="metro_red_classic">УЛИЦА ПОДБЕЛЬСКОГО</span>        
    7.                    </div>
    8.                </div>
    9.                <div class="tooltip">
    10.                  <area name="modal" shape="rect" coords="411,51,420,59" href="#dialog3" alt="ЧЕРКИЗОВСКАЯ">
    11.                    <div class="cherkizovskay">
    12.                      <span class="metro_red_classic">ЧЕРКИЗОВСКАЯ</span>               
    13.                    </div>
    14.                </div>
    15. ...
    Суть да дело:
    1. Я кликаю на части изображения,где у меня,например,"УЛИЦА ПОДБЕЛЬСКОГО" и тут по велению судьбы достаётся из базы вся инфа где place равно этому значению и выводится таблицей.
    2. Кликаю по "ЧЕРКИЗОНУ" и эта инфа убирается,а высвечивается другая-которая соответствует этому названию!
    Проблема:
    Нифига не пашет!)))
    П.С.Только прошу:не пишите,что это "тупой код" и т.д.-сам знаю-УЧУСЬ!!!
     
  2. Panich

    Panich Активный пользователь

    С нами с:
    10 май 2011
    Сообщения:
    548
    Симпатии:
    0
    Адрес:
    Ростов-Москва
    Вот так переписал и решил пояснить,что бы легче было шалбанов отпускать!)))
    [js]$('.tooltip').click(function(e) {//если кликают по участку изображения,то каша заварилась!
    .stop(true) //все анимации связанные с ранее нажатыми участками карты останавливаются
    if(div = TRUE)//если уже ранее высвечивалась информация (допустим я уже нажимал на участке изображения-только в другом месте,а теперь в этом хочу!)
    {
    var div = $('<div class="qwe"></div>');//если всё же существует этом элемент,то там же дожно,что-то быть!Но тут я очень не уверен,даже О-Ч-Е-Н-Ь!
    div.slideUp('fast');//и если он есть (этот ранее появившийся элемент,то я его убираю)
    }
    var element = $(this).children.find(div);//В этом участке изображение нахожу дочерний элемент,для того,что бы вытащить значение alt
    var clickEL = element.attr('alt');//вытаскиваю это значение и заношу его в переменную
    $.ajax({
    type: 'POST',
    url: 'inc_rek.php',
    data: {place:clickEL},//тут вношу значение alt в переменную place,что бы в php вытащить из таблицы все переменные где есть такое place
    success:function(data){
    $.ajax({
    type: 'GET',//Теперь я вытаскиваю из этого php все эти значения
    url: 'inc_rek.php',
    data: {place:clickEL},
    success:function(data){
    var object = jQuery.parseJSON(data)//И пытаюсь их структурировать для вывода на экран
    var text = ''
    $.each(place, function(){
    text += '<div class="qwe">'
    text += '<span>' + object.nazvanie + '</span>'
    text += '<span>/' + object.syte_1 + '</span> '
    text += '<em>' + object.syte + '</em>'
    text += '</div>'
    load (function(){
    var div = $('<div class="qwe"></div>');//тут заношу всё это для вывода на экран в переменную!
    div.slideDown()//Тут вывожу
    )}
    .appendTo('body');//всё это дело,а точнее безобразие,вставляю в бедно тельце моего сайта и на выходе все скрипты перестают работать вообще на странице!
    });
    }});
    });
    });[/js]
     
  3. Михаил

    Михаил Активный пользователь

    С нами с:
    12 июл 2009
    Сообщения:
    545
    Симпатии:
    0
    Адрес:
    Bielarus
    а фаербаг\стрекозу включить и посмотреть ошибки, что не позволяет?
    и
    перед точкой должно быть что-то же! у вас просто .stop(true)
    div не определён будет
    .children => .children()
    дальше не смотрел
     
  4. Panich

    Panich Активный пользователь

    С нами с:
    10 май 2011
    Сообщения:
    548
    Симпатии:
    0
    Адрес:
    Ростов-Москва
    [JS] $('.tooltip').click(function(e) {
    var clickEL = $(this).children('area').attr('alt');
    $.ajax({
    type: 'POST',
    url: 'inc_rek.php',
    data: {'place':clickEL},
    success: function(data) {
    $('.table_right').html(data);
    }
    });
    });[/JS]
    вывожу alert (clickEL); и появляется что нужно,потом заношу в place и в php файле вывожу echo $place, но там пустота.Вывожу значение $_POST(['plase']),а там абра-кадабра...!!!
     
  5. Михаил

    Михаил Активный пользователь

    С нами с:
    12 июл 2009
    Сообщения:
    545
    Симпатии:
    0
    Адрес:
    Bielarus
    смотрю кодировку, а она не utf-8
     
  6. Panich

    Panich Активный пользователь

    С нами с:
    10 май 2011
    Сообщения:
    548
    Симпатии:
    0
    Адрес:
    Ростов-Москва
    Не совсем понял...давайте ещё разок!
    Вот у меня есть два русских слова:"ПЛОЩАДЬ ПОБЕДЫ",например.Вот я беру их и по средствам аякс перекидываю их в php,там через echo вывожу и вижу крякозябры!
    В Денвере,браузере(так как ему командует сервер-то применимо слово СООТВЕТСТВЕННО) и в коде страницы стоит win-1251!
    Итог:от куда берутся КРАКОЗЯБРЫ!?!?!?!?!?!?

    Когда помогали мне писать чат с использованием php,то применяли в php файле строчку mysql_query("SET NAMES 'utf8'") и всё работало.В этом случае вставляю и ничего не помогает.Ошибки только...
     
  7. Михаил

    Михаил Активный пользователь

    С нами с:
    12 июл 2009
    Сообщения:
    545
    Симпатии:
    0
    Адрес:
    Bielarus
    нужно всё и всегда писать в UTF-8, тогда и проблем не будет, попробуйте переконвертнуть всё в утф.
    и так совет пора перейти с mysql_* на PDO.
     
  8. Panich

    Panich Активный пользователь

    С нами с:
    10 май 2011
    Сообщения:
    548
    Симпатии:
    0
    Адрес:
    Ростов-Москва
    А можно ли перенести с mysql в PDO базы данных или по новой писать нужно будет!?
    Где почитать,что бы особо не вникать и бысто понять физику работы?
     
  9. Михаил

    Михаил Активный пользователь

    С нами с:
    12 июл 2009
    Сообщения:
    545
    Симпатии:
    0
    Адрес:
    Bielarus
    всмысле перенсти? тебе просто код переписать с использованием пдо, там драйвер есть для многих бд, если изменится на постгрес, то переписать нужно будет одну строчку. почитай на php.net там есть про пдо
     
  10. Panich

    Panich Активный пользователь

    С нами с:
    10 май 2011
    Сообщения:
    548
    Симпатии:
    0
    Адрес:
    Ростов-Москва
    Да я уже сайт пишу как 7 месяцев(и учусь параллельно) и сейчас уже начинать изучать что-то новое ни желания,ни времени нет.Лучше запущу проект и если попрёт,то доучу и перепишу код!)))

    Я переконвектил как Вы сказали всё в utf-8 с помощью notepad,но результата никакого(точнее если ручками переставить в браузере,что бы воспринимал как utf-8,то работает(относительно),а как перезагрузил-опять проблемы!),поэтому внёс в .htaccess:
    Код (Text):
    1. AddDefaultCharset utf-8
    2. AddCharset utf-8 *
    3. <IfModule mod_charset.c>
    4. CharsetSourceEnc utf-8
    5. CharsetDefault utf-8
    6. </IfModule>
    И тут всё заработало,только вот то,что вытаскивает обработчик php из сторонних файлов превращается в ромбики с вопросами.Как уже достали эти кодировки-спать спокойно не могу!

    П.С.Вот перекодировал в notepad все станицы,выставил ручками на страницах кодировку,в базе данных и таблицах всё изменил на utf-8...................и в чём тут может быть проблема!?!?!?
     
  11. Михаил

    Михаил Активный пользователь

    С нами с:
    12 июл 2009
    Сообщения:
    545
    Симпатии:
    0
    Адрес:
    Bielarus
    ну скорее всего выставить всё в таблицах руками, не значит переконвертнуть
     
  12. Panich

    Panich Активный пользователь

    С нами с:
    10 май 2011
    Сообщения:
    548
    Симпатии:
    0
    Адрес:
    Ростов-Москва
    переконвертнул я через notepad каждый файл.А в таблицах выставил кодировку (и в базах данных тоже).Ни это ли значит,что теперь всё должно работать как надо?

    Вот вычитал такой код:
    PHP:
    1. $path="./tmp"; //путь к каталогу, в котором лежат файлы для перекодировки
    2. $handle=opendir($path);
    3. while ($file = readdir($handle)){
    4.   if (is_file($path."/".$file)){
    5.   #находим по порядку все файлы и перекодируем
    6.    $text=file_get_contents($path."/".$file);//читаем данные из файла
    7.     #конвертируем текст из «utf-8» в «cp1251» с помощью функции iconv()
    8.    $text=iconv("utf-8", "cp1251", $text);
    9.     file_put_contents($path."/".$file, $text);//пишем данные обратно в файл
    10.   }
    11. }
    12. ?>
    Это его вставить отдельный файл,а файл в корень папки сайта или как?
     
  13. Panich

    Panich Активный пользователь

    С нами с:
    10 май 2011
    Сообщения:
    548
    Симпатии:
    0
    Адрес:
    Ростов-Москва
    Результат:
    всё вернул в 1251 и саму переменную в ajax прогнал через mb_convert_encoding() и всё получилось.Соответственно 1,5 дня потерял,перечитал массу сайтов,задолбал знатоков 3-х форумов,вернулся к исходному коду и получил хорошие знания.
    Всем большое спасибо,кто остался не безучастен к моей проблеме!