$.getScript и динамический SELECT

Discussion in 'PHP' started by rudi, 22 Aug 2011.

  1. rudi

    rudi Active Member

    Joined:
    3 Jun 2010
    Messages:
    487
    Likes Received:
    184
    Reputations:
    5
    Привет
    Есть ссылка оценки стоимости авто
    http://auto.yandex.ru/avg-price.xml

    хочу такое же сделать на своем сайте
    что бы была такая же форма на моем сайте
    но что бы запросы посылались яндексу и яндекс выдавал ответ стоимости авто.
    Мой сайт парсит ответ яандекса и все.

    Возникла проблема с динамическим формированием SELECT списков.
    Там они меняются в зависимости от автомобиля
    Я понял что отправив например такой запрос яшке
    http://auto.yandex.ru/gate/avg-price-filter.xml?mark=ZAZ
    я получу список моделей для автомобиля ЗАЗ, и я должен у себя на сайте вставить этот список
    Я пытаюсь заюзать JAVASCRIPT
    Использую например такой запрос
    $.getScript("http://auto.yandex.ru/gate/avg-price-filter.xml?mark=ZAZ");
    в ответ получаю кусок HTML кода, который я должен вставить динамически в свою страницу
    Не пойму как вставить ответ..., как получить то что возвращает функция $.getScript.
    Или нужно задействовать иные функции?
     
    #1 rudi, 22 Aug 2011
    Last edited: 22 Aug 2011
  2. FindeR

    FindeR Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    callback-функцию используй:
    Code:
    $.getScript("http://auto.yandex.ru/gate/avg-price-filter.xml?mark=ZAZ", function(data, status)
    {
    alert(data);
    });
    
    в data ответ будет.
     
  3. rudi

    rudi Active Member

    Joined:
    3 Jun 2010
    Messages:
    487
    Likes Received:
    184
    Reputations:
    5
    не получил
    буду ковырять

    делал так, так даже alert('GOOD'); не сработал

    $.getScript("http://auto.yandex.ru/gate/avg-price-filter.xml?mark=ZAZ", function(data, status){
    alert('GOOD');
    alert(status);
    alert(data);
    });
    alert('END');
     
  4. FindeR

    FindeR Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    В данном примере alert('END') должно исполниться быстрее, чем alert('GOOD'), т.к. callback сработает ПОСЛЕ выполнения getScript(), а дальнейшее исполнение кода продолжится сразу.

    Но вопрос-то в чём - getScript() выполняет удалённый js-код, а по ссылке http://auto.yandex.ru/gate/avg-price-filter.xml?mark=ZAZ лежит не js-файл, а уже готовый, скомпиленный кусок html-кода.
    Получай его через php:
    PHP:
    echo file_get_contents('http://auto.yandex.ru/gate/avg-price-filter.xml?mark=ZAZ');
     
    2 people like this.
  5. rudi

    rudi Active Member

    Joined:
    3 Jun 2010
    Messages:
    487
    Likes Received:
    184
    Reputations:
    5
    Да, но это не JAVASCRIPT
     
  6. FindeR

    FindeR Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    Да, это php, а в чём проблема-то? Хостинг не поддерживает php?
     
  7. rudi

    rudi Active Member

    Joined:
    3 Jun 2010
    Messages:
    487
    Likes Received:
    184
    Reputations:
    5
    Поддерживает
    получается мне нужно будет писать JAVASCRIPT объединеный с кодом php ?
    или как.. я чето не могу вкурить, как мне динамически менять
    поля SELECT.

    А можно както вызвать событие чтобы выполнился php код ?
    или можно ли делать вставки php кода в JavaScript ?

    Я просто не могу представить очередность моих действий
    Например, нам нужно выбрать Марку авто, допустим мы выбрали марку ГАЗ
    После выбора марки ГАЗ, рядом должен построиться список его моделей
    Для этого мы
    1)вешаем событие на выбор марки авто.
    2)срабатывает JavaScript , и мы както заюзав php получаем с Яндекса модели этой марки
    3)И опять таки с помощью JAVASCRIPT их вставить на сайт

    Я верно рассуждаю?*
     
    #7 rudi, 22 Aug 2011
    Last edited: 22 Aug 2011
  8. rudi

    rudi Active Member

    Joined:
    3 Jun 2010
    Messages:
    487
    Likes Received:
    184
    Reputations:
    5
    Мучал мучал и на мучал

    скрипт
    PHP:
    $.get("/getSelect.php?url=auto.yandex.ru/gate/avg-price-filter.xml?mark=BMW"
                        function(
    data){
                        
    alert("Data Loaded: " data);
                       });
    ___________________
    И написал мини php файл
    getSelect.php

    PHP:
    <?php
    $url 
    $_GET['url'];
    if(isset(
    $_GET['url']))
    {
        
    $curl=curl_init($url);
        
    curl_setopt($curlCURLOPT_RETURNTRANSFER1);
        
    $content=curl_exec($curl);
        
    curl_close($curl);
        echo 
    $content;
    }
    ?>
     
    #8 rudi, 23 Aug 2011
    Last edited: 23 Aug 2011
  9. rudi

    rudi Active Member

    Joined:
    3 Jun 2010
    Messages:
    487
    Likes Received:
    184
    Reputations:
    5
    FindeR
    Спасибо тебе.