Загрузка данный из базы MySQL с помощью jquery

Если Вы совсем новичок и слабо представляете себе возможности jQuery, не можете понять в каком форуме задать свой вопрос - Вам сюда.

Модераторы: TRAHOMOTO, tuareg, Gennady

Загрузка данный из базы MySQL с помощью jquery

Сообщение Александр » 10 фев 2010, 17:49

Здравствуйте.

Вот встала задача подгружать материалы, когда скроллинг доходит до определенной позиции (допустим, низа страницы).
Изначально на сайте присутствует навигация по страницам.

Со скроллингом разобрался. Осталось понять принцип подгрузки.
Пробовал делать подгрузку контента через $.post, указывая ссылки из навигации, но назад приходит страница полностью.
Думаю, что тут надо делать запрос к самой базе через jquery.
Как делать sql запрос к базе, чтобы выцепить сам контент материала, разберусь.

А вот как это все оформить через jquery, чтобы на выходе получить данные sql запроса?

p.s. И вообще, возможно ли из javascript с помощью jquery сделать запрос к базе данных и получить оттуда необходимую информацию?
Александр
 
Сообщений: 4
Зарегистрирован: 10 фев 2010, 17:40

Re: Загрузка данный из базы MySQL

Сообщение Gennady » 10 фев 2010, 18:13

JavaScript не может делать запросы к БД, с помощью него, ну давайте говорить - с помощью jQuery, можно отправить ajax-запросом на сервер некие данные, которые будут использованы в SQL-запросе. С помощью него же можно обработать ответ, полученный от сервера.
Если Вы разобрались со скроллингом и знаете, когда надо отправлять запросы, то остальное выглядит примерно так:
Код: выделить все
$(function () {
  $("button:first").click(function(){
    $.ajax({
      url: "testAjax.php",
      type: "POST",
      data: "name=Jonh&age=35",
      timeout: 3000,
      beforeSend: function(){
        $("div").text("Загрузка...");
      },
      success: function(data){
        $("div").html(data);
      },
      error: function(xhr, status){
        $("div").html("<span>" + status + "</span>");
      }
    });
  });
});

Есть какая-то кнопка button при клике по которой "процесс пошел". Неважно, что у Вас не кнопка - тут важно само событие. Во вспомогательной функции $.ajax(options) мы определяем настройки запроса. К какому URL, каким методом, какие данные передавать, что делать перед отправкой запроса, что при получении успешного ответа, а что - при ошибке. В примере для простоты все выводится в некий div. В итоге в этот самый div и помещается ответ сервера, т.е. тот результат, который вернется от БД в ответ на Ваш запрос.
А на сервере происходит например следующее:
Код: выделить все
<?php
header('Content-Type: text/html; charset=utf-8');
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
  if($_POST){
    print '<h3>Ответ сервера</h3><p>Время: '.date("H:i:s", time()).'</p>';
  }
}
?>

Вот так как-то...
P.S. Я всегда рекомендую использовать более гибкую функцию $.ajax, нежели $.post, $.get и т.п.
Долог путь поучения, короток и успешен путь примеров (Сенека).
I'm a member of jQuery Meetups. jQuery users unite! Connect with other jQuery users... Присоединиться к jQuery Russia.
Аватар пользователя
Gennady
Администратор
 
Сообщений: 1886
Зарегистрирован: 14 янв 2010, 14:36
Откуда: Москва

Re: Загрузка данный из базы MySQL с помощью jquery

Сообщение Александр » 10 фев 2010, 18:51

Спасибо, то что нужно!
Будем разбираться.
Александр
 
Сообщений: 4
Зарегистрирован: 10 фев 2010, 17:40

Re: Загрузка данный из базы MySQL с помощью jquery

Сообщение TRAHOMOTO » 10 фев 2010, 20:04

Думаю вам очень сильно поможет статья jQuery и Ajax: запросы, мне в свое время очень помогла
Предполагается наличие объекта
Аватар пользователя
TRAHOMOTO
Модератор
 
Сообщений: 513
Зарегистрирован: 19 янв 2010, 17:18
Откуда: Украина, Луганск

Re: Загрузка данный из базы MySQL с помощью jquery

Сообщение userfoenix » 11 фев 2010, 00:19

Тут важно само понимание различия между серверной и клиентской частью приложения. JavaScript (jQuery) представляет собой клиентскую часть, в то время как работа с СУБД происходит на стороне сервера (PHP, Java, Python, Perl). JavaScript загружается броузером вместе с основным потоком HTML страницы, затем выполняется уже в броузере конкретного пользователся. Потому нету смысла в вопросе как подгружать SQL с помощью jQuery на страницу. Вопрос стоит перефразировать таким образом: "Как можно оновить набор данных на странице, используя асинхронный запрос к серверу? ". Тут имеется ввиду, что на стороне сервера присутствует url (/instruction/forum/%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B9 вызывает серврный скрипт), который может возвращать набор данных, в зависимоти от параметров запроса.

Аякс запрос содержит в себе условия выборки, которые принимает серверный скрипт (например как параметр POST или GET). Правильнее всего, чтобы он возвращал клиенту или непосредственно кусок HTML(которым можно потом обновить слдержимое любого тега) или же данные выборки в формате JSON. Преимуществом последнего варианта является то, что JSON самый компактный способ передачи данных. Причем этот формат специально придуман для JavaScript. Его на строне клиента легко конвертировать в JavaScript обьект или масив, после чего с ним можно удобно работать.

Какой способ вы выберете - дело Ваше. Я рекоменду от себя именно вариант с JSON, так как Вы максимально сократите время асинхронного зароса к серверу.
Краткость - сестра таланта. Старая истина - как правило разработки на jQuery.
Аватар пользователя
userfoenix
 
Сообщений: 15
Зарегистрирован: 06 фев 2010, 01:32

Re: Загрузка данный из базы MySQL с помощью jquery

Сообщение xipi » 11 фев 2010, 09:10

Я рекоменду от себя именно вариант с JSON, так как Вы максимально сократите время асинхронного зароса к серверу.

А если в ответе приходит просто кусок текста, есть разница во времени обработки запроса к серверу, отправленного через json или ajax?
xipi
 
Сообщений: 11
Зарегистрирован: 10 фев 2010, 09:42
Откуда: Москва

Re: Загрузка данный из базы MySQL с помощью jquery

Сообщение m4v23 » 11 фев 2010, 09:46

xipi, вы видать не очень понимаете что такое json. Вот,почитайте. /2008/40.html
Простое надо делать просто.
Сложное надо делать простым.
Аватар пользователя
m4v23
 
Сообщений: 59
Зарегистрирован: 29 янв 2010, 12:08
Откуда: Новосибирск

Re: Загрузка данный из базы MySQL с помощью jquery

Сообщение TRAHOMOTO » 12 фев 2010, 00:37

По сути своей любой ответ от сервера это кусок текста, а вот для того чтобы парсер ответа понял и обработал соответствующим образом, указывается тип ожидаемого ответа, и желательно соответствующим образом выставить заголовок на стороне сервера перед возвратом результатов браузеру
Предполагается наличие объекта
Аватар пользователя
TRAHOMOTO
Модератор
 
Сообщений: 513
Зарегистрирован: 19 янв 2010, 17:18
Откуда: Украина, Луганск


Вернуться в Вопросы от совсем новичков

Кто сейчас на форуме

Сейчас этот форум просматривают: Google [Bot] и гости: 4