Я разрабатываю веб-сайт, на котором собрана информация с нескольких сайтов с информацией о погоде / снеге для горных прогулок в Шотландии. В настоящее время у меня есть страница, на которой используется iFrame для извлечения и отображения карты отчета о лавинах для региона и ряда ссылок, которые вызывают функцию javascript для изменения карты, отображаемой для разных мест. Теперь я добавляю метод очистки в php, чтобы извлечь текстовый отчет с отдельной страницы на исходном сайте и добавить его вместе с картой. У меня эта функция работает нормально, но я борюсь с тем, как изменить это текстовое содержимое, когда пользователь выбирает местоположение, щелкнув ссылку.

У кого-нибудь есть предложения о том, как этого добиться? Желательно, чтобы я делал это без обновления страницы (следует ли мне использовать что-то вроде Ajax для всего этого?). Вот 2 скрипта, которые у меня есть на данный момент:

Скрипт парсинга PHP:

<?php
    $data = file_get_contents('http://www.sais.gov.uk/page_Creag%20Meagaidh.asp');
    $regex = '/Observed Weather Influences........(.+?)\W\Wp\W/';
    $preg_match($regex,$data,$match);
    echo $match[1];
?>

Изменение карты Javascript:

<script type="text/javascript">
    function changeMap(val) {
        frame=document.getElementById('avalanchemap');
        frame.src="http://www.sais.gov.uk/summary_report.asp?area_id=" + val;
    }
</script>
0
Brae 6 Фев 2014 в 19:58
1
Лисик просьба не редактировать сам код в вопросах. Вы можете случайно ввести в заблуждение.
 – 
Bill Woodger
6 Фев 2014 в 20:09

1 ответ

Лучший ответ

JQuery не требуется, но упростит вам процесс (не похоже, что вы так уверены):

Настройте контейнерный div в своем HTML. И добавляем такой скрипт:

$('.dropdown-or-whatever').change(function(){
    $.ajax({
        url: 'http://www.domain.com/the_location/_of_your_script.php',
        success: function(result){
            $("#your-container-div").html(result);
        }
    });
});

Функция change () в первой строке предполагает, что вы используете раскрывающийся (выберите) элемент, что может быть неверным.

Вы также (вероятно) захотите передать своему PHP-скрипту различные параметры в зависимости от того, какой из раскрывающегося списка выбран, и очистить другую страницу в зависимости от того, что установлено. Параметры могут быть добавлены в конце строки URL следующим образом:

?place=scotland

Есть вопросы, просто задавайте.

Редактировать: надоело и в основном сделал это за вас. http://pastebin.com/np7GVh3f Взгляните на код и, надеюсь, вы что-нибудь узнаете :) < / сильный>

1
Michael 6 Фев 2014 в 21:15
Если вы не транслируете этот скрипт с domain.com, то это междоменный запрос, и это будет невозможно.
 – 
Entity Black
6 Фев 2014 в 20:28
Это не будет междоменный запрос, потому что он будет на его сервере.
 – 
Michael
6 Фев 2014 в 20:36
Извините, что не ответил раньше - важные телефонные звонки всегда приходят в плохие времена: D Большое спасибо за это. Я посмотрю и посмотрю, смогу ли я с этим разобраться. Вы правы, я не уверен в этом - я никогда раньше не делал больше, чем базовые веб-сайты HTML5 / CSS / PHP, так что для меня это в новинку. Я всегда готов изучать что-то новое (в этом весь смысл этого веб-проекта), так что большое спасибо!
 – 
Brae
6 Фев 2014 в 21:58