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

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

  • XoxMa

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

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

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

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

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

    XoxMa™, а чем тебя ajax-фреймворки не устраивают?
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • Trej Gun

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

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

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

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

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

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

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

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

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

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

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

    Spritz 17 июня 2008 г. 23: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. =)
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • Trej Gun

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

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

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

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

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

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

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

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

    Spritz 19 июня 2008 г. 9: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) {
            //тут короче формирование апдейта
        }
        //а тут его выполнение
    ?>
    

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