За последние 24 часа нас посетили 17635 программистов и 1723 робота. Сейчас ищут 1910 программистов ...

загрузка файлов ajax

Тема в разделе "PHP для новичков", создана пользователем askanim, 8 авг 2016.

  1. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @denis01 не понял тебя это в js ? У меня всё должно отработаться в одном запросе, не надо два. Мне нужна узнать в какую я таблицу добавил данные, помимо картинок, а после добавить картинки, ты просто не видишь картины, в целом, ну а у меня конечно может быть ещё и мало опыта, но и расписать сейчас всё что тут я сделал это дохрена листингов с кодом, устану всё выкладывать. Я же сделал двиг на своей библиотеке, который сам формирует маршруты и создаёт страницы, а так же контроллеры и модели.
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    У тебя пользователь может в запросе указать какую модель (класс) подгрузить и добавить в него данные из запроса?
     
  3. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @denis01 не пользователь, а разработчик! я делаю систему для быстрой сборки нужных контроллеров и моделей, а также создания для модели нужной таблицы и создание нужных полей в таблице!
    --- Добавлено ---
    @denis01 хочешь посмотреть как это выглядет ? Могу открыть для тебя доступ! Посмотришь. Только не сегодня, а где то завтра.

    А забыл добавить когда создаётся страница, автоматом создаётся и view (html ) шаблон в таблице и туда сразу передаются массивы от моделей, в котором хранится запрос к базе данных.
    --- Добавлено ---
    @denis01 всё таки перво наперво пишу библиотеку, да и госпади фиг с ней, там везде мой дао паттерн стоит который фильтрует поступление данных в таблицу, а ещё всё проверяется, на ввод данных то есть ты не сможешь через форму ввести не те символы или не те данные. английского алфавита с цифрами вполне достаточно для создания имён. И проверяется всё на стороне сервака регулярками.
     
    #53 askanim, 8 авг 2016
    Последнее редактирование: 8 авг 2016
    denis01 и MouseZver нравится это.
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @askanim всё понял, грубо говоря что-то на CRUD похожее делаешь, значит всё нормально.
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Заработало?
     
  6. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @igordata так ещё вчера заработало)
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    грац, чо!
     
    askanim и pinokio нравится это.
  8. pinokio

    pinokio Новичок

    С нами с:
    25 июл 2016
    Сообщения:
    160
    Симпатии:
    6
  9. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @igordata Спасибо! :rolleyes: Столько радости было что доделал эту загрузку :)
     
  10. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    я написал фигулинку для аякса, мне удобно. могу показать попозжее. никто кроме меня и моих знакомых её не юзает, но хз, она прикольная.
     
  11. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @igordata Давай, буду рад посмотреть :)
     
  12. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    основа взаимодействия - apirequest.js и функция apirequest
    https://gist.github.com/igordata/c9b05582bb88b920afb55912ef4a1b3e

    это то, во что парсится ответ
    https://gist.github.com/igordata/33929ea77e6e585da78bee3c1b947d43

    php-код для упрощения
    https://gist.github.com/igordata/b38d64bd15d2710f0497f8cac64ac077

    Примеры:

    Код (Javascript):
    1.       apirequest({
    2.         url: '/api/forum/comment/remove',
    3.         popupOnError: true,
    4.         messageOnError: true,
    5.         onSuccess: function (response) {
    6.           $('#forum-comment-' + id).replaceWith(response.getData('comment'));
    7.         },
    8.         data: {
    9.           id: id
    10.         }
    11.       });
    popupOnError - В случае ошибки автоматически покажет попапчик с сообщением об ошибке, которое пришло с сервера. Или несколько сообщений.

    messageOnError - то же самое, только не попапчиком на странице

    Сообщения могут показываться и на успех.

    onSuccess:function(response){ - функция которая вызовется, когда запрос вернётся с кодом ответа "успех". Такая же есть и для случая, если произошла ошибка, но обычно для ошибк хватает и просто сообщения.

    Дата это данные, которые уходят на сервер. В принципе можно отправить и файл.

    Ещё пример:
    Код (Javascript):
    1.       apirequest({
    2.         url: '/api/forum/complain/new',
    3.         popupOnError: true,
    4.         popupOnSuccess: true,
    5.         redirect: true,
    6.         data: {
    7.           comment: JohnSnow.comment.id,
    8.           message: $('#complain-message').val()
    9.         }
    10.       });
    Покажет сообщение об успехе или об ошибке, после делает редирект автоматом. Если конечно редирект пришёл с сервера.

    На сервере это выглядит так:

    PHP:
    1. try {
    2.  
    3. ...... куча условий .....
    4.  
    5.   ajaxResponse::addMessage('Complain sent', 'success', 'Отправлено');
    6.   ajaxResponse::redirect('/' . h($community['alias']) . '/forum/comment/locate/' . (int)$comment['id'], 3);
    7.   ajaxResponse::setStatusOK();
    8. } catch (Exception $ex) {
    9.   ajaxResponse::setStatusError();
    10.   ajaxResponse::addMessage($ex->getMessage(), 'error');
    11.   ajaxResponse::debug($ex->getMessage());
    12.   ajaxResponse::debug("Trace log:\n" . $ex->getTraceAsString());
    13. }
    14. echo ajaxResponse::render();
    в случае ошибки редиректа нет и будет показано сообщение. Всё работает само. Удобно.
     
    askanim нравится это.
  13. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @igordata я не до конца всё понял я в закладки добавил ближе к вечеру гляну, как работу раскидаю, и уже сяду разбираться вникать в суть. Спасибо.
     
  14. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Код (Javascript):
    1. onSuccess: function (response) {
    2.           $('#forum-comment-' + id).replaceWith(response.getData('comment'));
    а, ну да, ещё можно передавать данные соотв удобно

    response.getData('comment') это то, что было запихнуто в ответ через
    PHP:
    1.   ajaxResponse::data('comment', $comment);