как получить информацию с php без обновления страницы - PullRequest
0 голосов
/ 22 мая 2011

Привет, извините за неправильный заголовок, но я не уверен на 100%, что мне нужно для этой проблемы

Я создал страницу приветствия, а затем, когда вы нажимаете на ссылки, вы получаете дополнительную информацию, например:

<a href="?id=1">Click Me</a>

И тогда php получит информацию на основе идентификатора.поэтому полученная информация перезагружается на странице после обновления страниц

, что я хотел бы сделать, когда пользователь нажимает на ссылку, используйте jquery, чтобы не разрешать запуск ссылки, но по-прежнему запускать URLв фоновом режиме (без обновления страницы)

Я понятия не имею, с чего начать, поэтому я очень надеюсь, что вы могли бы помочь

спасибо

Ответы [ 5 ]

2 голосов
/ 22 мая 2011

В двух словах, это называется Ajax: отправка HTTP-запроса на ваш сервер через javaScript и получение ответа, который может содержать результаты, данные или другую информацию.

Вы упомянули jQuery, вот документы по этому поводу: http://api.jquery.com/jQuery.get/ http://api.jquery.com/jQuery.post/

- это вспомогательные методы, которые инкапсулируют $ .ajax с предустановленными параметрами.

http://api.jquery.com/category/ajax/ - обзор всей системы в jQuery.

Основы идут как

//include jquery, etc.
$(document).ready(function(){
    $('#some_element').click(function(){
       $.get('some_url_on_your_server.php',{'data':'whatever params'},function(data){
          do_something();//
       },'json');
    });

Это связывает элемент для вызова Ajax по щелчку, а затем вы используете функцию (функция success, в $ .ajax) для обработки данных json.

Пусть ваш сервер отправит обратно данные в формате JSON, используя json_encode в php. Обязательно отправьте правильный заголовок обратно, например

<?php
header('Content-Type: application/json');
echo json_encode($some_array);
exit;

В Интернете много ресурсов и ТАК, чтобы узнать об Ajax, это большая тема. Желаем удачи.

1 голос
/ 22 мая 2011

Создайте функцию JavaScript, такую ​​как sendData (linkId), и тогда у каждого тега будет событие onclick, называемое sendData (this). SendData (linkId) может затем выполнить HTTPRequest (также известный как асинхронный или AJAX-запрос) к файлу php, назовем его handler.php, который получает методы GET или POST. Я предпочитаю использовать прототипный фреймворк для таких целей (вы можете получить его на prototypejs.org).

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

Загрузите скрипт-прототип, сохраните его на своем сервере (например, как prototype / prototype.js), а затем поместите где-нибудь в свой html <script type='text/javascript' language='Javascript' src='prototype/prototype.js'></script>

Ваши теги будут выглядеть так: <a id='exampleLink' onclick = 'sendData(this)'>Click me!</a>

Для этого необходим JavaScript: function sendData(tagId){ var url = 'handler.php?' + 'id=' + tagId; var request = new AJAX.Request(url, {method = 'get'}); }

Наконец, вам нужен php-файл (назовем его handler.php), который имеет следующее: <?php $tag_to_get = $_GET['tagId']; do_a_php_function($tag_to_get); ?>

Это в двух словах, но стоит упомянуть, что вы должны дать своему пользователю какой-то отзыв, чтобы ссылка на что-то сделала. В противном случае он щелкает ссылку, яростно ожидая, что что-то произойдет, когда он на самом деле делает то, что должен, но втайне. Вы делаете это, заставляя свой php-скрипт выводить что-то в конце, например «Success!», А затем добавляете параметр onSuccess в новый JavaScript-запрос Ajax.Request. Я дам вам прочитать, как это сделать самостоятельно, потому что на сайте-прототипе объясняется, как получить ответ от обработчика и поместить отзыв в ваш HTML-код, не обновляя пользователя.

0 голосов
/ 22 мая 2011

Я бы порекомендовал вам использовать AJAX для начала. Хорошее место для бытия это http://www.w3schools.com/Ajax/Default.Asp

Ссылка также поставляется с удобным примером AJAX ASP / PHP =))

Удачи.

0 голосов
/ 22 мая 2011

Если вы действительно хотите (и я не думаю, что вы действительно этого хотите), вы можете использовать XMLHTTPRequest (обернутый в jQuery.get), чтобы упростить загрузку содержимого на страницу без обновления страницы. Вы хотите id или class для этого тега, т.е. <a href="?id=1" class="fetch">Click Me</a>, а затем:

<script>
    $(".fetch").bind("click", function(evt)
    {
        $.get(this.attr("href"), function(data)
        {
            $("#whereIWantMyContent").html(data);
        });
        evt.preventDefault();
    });
</script>
0 голосов
/ 22 мая 2011

вы можете добиться такого поведения с помощью функции jquery $ .get ... вы можете получить больше информации о том, как использовать здесь http://api.jquery.com/jQuery.get/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...