ФорумПрограммированиеPHP для идиотов → Отправка данных без перезагрузки страницы

Отправка данных без перезагрузки страницы

  • XoxMa

    Сообщения: 135 Репутация: N Группа: Кто попало

    Spritz 17 июня 2008 г. 10:59

    У кого-нибудь есть уже готовый скрипт как отправлять данные в mysql без перезагрузки страницы? Естественно используя там например DOM и AJAX..
    Я конечно нашёл такие татуреалы в инете, но там проблемма: все они используют какие-нибудь библиотеки, особенно jquery. А вот можно обойтись без этого?
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 17 июня 2008 г. 11:10, спустя 11 минут 31 секунду

    XoxMa™, а чем тебя ajax-фреймворки не устраивают?
    adw/0
  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 17 июня 2008 г. 11:17, спустя 6 минут 14 секунд

    а чем тебе не нравяться библиотеки типа jquery я если чесно иногда даже забываю как без нее чтото сделать

    ну ладно я понял типа она очень тяжолая? возьми тогда чтото модульное типа mootools и выдерни оттуда модуль для работы с ajax поверь мне у тебя врядли получиться написать лучше
  • XoxMa

    Сообщения: 135 Репутация: N Группа: Кто попало

    Spritz 17 июня 2008 г. 11:36, спустя 19 минут 24 секунды

    adw0rd, что такое ajax-фреймворки?
    CTAPbIu_MABP, просто я делаю такой сайт, где не желательно использовать чьи-нибудь библиотеки, то есть известные всем. Сейчас я посмотрел mootools, и особо ничего не понял как там всё работает ( http://mootools.net/downloads/mootools-1.2-core-nc.js )
  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 17 июня 2008 г. 12:01, спустя 24 минуты 54 секунды

    мне SACK нравится. Имхо, простой до крайности.
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 17 июня 2008 г. 12:14, спустя 12 минут 51 секунду

    adw0rd, что такое ajax-фреймворки?


    Можно называть ajax-библиотеки. Просто широко распостранненые библиотеки, такие как JQuery или Prototype, выполняют не только роль ajax-библиотек, но и дополнительный функционал. Поэтому их называют фреймворками (http://ru.wikipedia.org/wiki/JQuery и http://ru.wikipedia.org/wiki/Prototype).

    Я юзаю Prototype, jQuery, JsHttpRequest и goAJAX. =)
    adw/0
  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 17 июня 2008 г. 13:41, спустя 1 час 26 минут 56 секунд

    странно раньше мутулз был модульным теперь все в одном файле но всеравно разделено

    а что за проект такой секретный?!
  • kendo

    Сообщения: 446 Репутация: N Группа: Адекваты

    Spritz 17 июня 2008 г. 22:22, спустя 8 часов 41 минуту 45 секунд

    Да и самому несложно написать простейшие функции. К примеру, мне попадались несколько замечательных статей на сайте IBM. Как-то в свое время занимался этим, но пока не пригодилось, к сожалению :-(
  • mechanic

    Сообщения: 125 Репутация: N Группа: Кто попало

    Spritz 18 июня 2008 г. 22:47, спустя 1 день 24 минуты

    ну например такие функции

    function getXMLHttpObject() {
    if (window.ActiveXObject) {
    return new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if (window.XMLHttpRequest) {
    return new XMLHttpRequest();
    }
    else {
    alert("Your browser does not support AJAX.");
    }
    return false;
    }

    function sendAjaxRequest(url, callback, async) {
    if (typeof(sync) == 'undefined') {
    async = true;
    }
    req = getXMLHttpObject();
    if (!req || !url) {
    return false;
    }
    req.open('GET', url, async);
    req.onreadystatechange = callback;
    req.send(null);
    return true;
    }

    а юзать как то так

    url = 'http://site.ru/backend/someDataSource.php?тут параметры…';
    sendAjaxRequest(url, checkResult);
    function checkResult() {
    if (req.readyState != 4) {
    return false;
    }
    alert(req.responseText);
    }

    например, чтоб обновить какие то поля в базе, можно написать так

    url = 'http://site.ru/backend/someDataSource.php?id=1&name=Vasya&age=16';
    sendAjaxRequest(url, checkResult);

    а в /backend/someDataSource.php

    <?php
    $fields = $_GET;
    if (isset($fields['id'])) {
    $id = intval($fields['id']);
    unset($fields['id']);
    }
    else die();
    foreach($fields as $name => $value) {
    //тут короче формирование апдейта
    }
    //а тут его выполнение
    ?>

Пожалуйста, авторизуйтесь, чтобы написать комментарий!