Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
1 / 1 / 1
Регистрация: 08.12.2014
Сообщений: 7

MVC PHP AJAX принять обработать вернуть

08.12.2014, 10:49. Показов 3866. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день всем форумчанам. Решил создать данную тему, так как почитал то что уже есть на форуме и если честно, то решения так и не нашел.
Сайт делаю себе на MVC ООП, понадобилось прикрутить к нему AJAX и столкнулся с проблемой при возврате данных.
Направьте пожалуйста на путь истинный.
Вот мой контроллер indexController.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
class IndexController implements IController{
    /*метод который отрисовывает страницу*/
    public function indexAction(){
          $fc = FrontController::getInstance();
          $params = $fc->getParams();
          $params['token'] = $_COOKIE['PHPSESSID'];
          $view = new IndexModel();
          $view->params = $params;
          $result = $view->render('../views/index.php', $params);
          $fc->setBody($result);
    }    
   /*Метод созданный для обработки AJAX*/ 
   public function ajaxAction(){
        $fc = FrontController::getInstance();
        $params = $fc->getParams();
        $view = new IndexModel();
        $ajax = $view->ajax();
    }
Когда отрисовывается страница, то на ней у меня есть форма, при нажатии на ( отправить ), а я сделал не ( submit ) а ( button ) у меня обрабатывается JS

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$(document).ready(function() {
            // Добавляем новую запись, когда произошел клик по кнопке
            $("#FormSubmit").click(function (e) {
                e.preventDefault();
                if($("#contentText").val()==="") {
                    alert("Введите текст!");
                    return false;
                }
                var myData = "/content_txt="+ $("#contentText").val();
                jQuery.ajax({ // HTTP метод  POST                    
                    url: "index/ajax", //url-адрес, по которому будет отправлен запрос                   
                    data:myData, //данные, которые будут отправлены на сервер (post переменные)
                    success:function(response){
                        $("#responds").append(response);
                        $("#contentText").val(''); //очищаем текстовое поле после успешной вставки
                    },
                    error:function (xhr, ajaxOptions, thrownError){
                        alert(thrownError);
                    }
                });
            });
Данные отправляются, в модели проверяю на ПОСТ, они приходят, и тут начинается самое интересное.
Когда идет возврат данных, то у меня в том месте где данные должны как бы обновится, отрисовывается снова полностью вся страничка вместе с формой и тем постом что я отправил. И так получается всякий раз как я делаю отправку формы.

вот сама форма в ( index.php )
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<div class="content_wrapper">
    <ul id="responds">
        <?php if(is_array($result)){; ?>
            <?php foreach($result as $list){; ?>
                <?php if($list['id_admin'] != 0){; ?>
                    <li style="margin-right: 20px; background-color: red; " id="item_'<?php echo $list['id']; ?>'">
                        <div class="del_wrapper"><a href="#" class="del_button" id="del-'<?php echo $list['id']; ?>'">
                                <img src="/images/icon_del.gif" border="0" />
                            </a></div>
                        <?php echo $list['listText']; ?>
                    </li>
                <?php }else{; ?>
                    <li style="margin-left: 25px; background-color: blue; " id="item_'<?php echo $list['id']; ?>'">
                        <div class="del_wrapper"><a href="#" class="del_button" id="del-'<?php echo $list['id']; ?>'">
                                <img src="/images/icon_del.gif" border="0" />
                            </a></div>
                        <?php echo $list['listText']; ?>
                    </li>
                <?php }; ?>
            <?php }; ?>
        <?php }
 
    </ul>
    <div class="form_style">
        <input type="hidden" value="1"/>
        <input type="hidden" id="token" value="<?php echo $params['token']; ?>" />
        <input type="hidden" id="userId" value="<?php echo $userId; ?>"/>
        <textarea name="content_txt" id="contentText" cols="45" rows="5"></textarea>
        <button id="FormSubmit">ОТПРАВИТЬ</button>
    </div>
    <div>
У меня есть предположение что не правильно реализовал сам контроллер так как там при вызове модели идет один параметр это конкретно страничка которую надо отрисовать и один массив ($params )

PHP
1
2
$result = $view->render('../views/index.php', $params);
$fc->setBody($result);
Если знаете как правильно обрабатывать данные чтоб не отрисовывалась вся страница, подскажите пожалуйста.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.12.2014, 10:49
Ответы с готовыми решениями:

PHP MVC ООП - как принять и обработать форму, отправленную аяксом
Здравствуйте, прошу помощи по следующей проблеме... В целях изучения ООП и паттерна проектирования MVC решил создать сайт с...

PHP, MVC и AJAX
Приветствую всех! Начал разбираться с MVC и в данный момент делаю авторизацию на сайте. Возник вопрос, можно ли использовать технологию...

Есть AJAX код, который отправляет POST данные в php. Как их принять в php?
Всем привет! AJAX код отправляет post данные в php файл. Как принять эти post данные в php? Вот AJAX: ...

2
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
11.12.2014, 18:46
а что происходит в конструкторе модели, и в методе ajax?
0
1 / 1 / 1
Регистрация: 08.12.2014
Сообщений: 7
26.12.2014, 01:09  [ТС]
Всем спасибо, вопрос снят, все получилось, самый простой пример реализации описан по данной ссылке.
MVC подход и Ajax
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.12.2014, 01:09
Помогаю со студенческими работами здесь

Как передать даные через ajax и принять их на php
let person = { name:&quot;Vova&quot;, last:&quot;Nak&quot;, age:18 } // let person = &quot;hello&quot; // let pre = &quot;order=&quot;; function toPHP(){...

Ajax в MVC. Осуществить аутентификацию, при этом если модель не проходит валидацию, вернуть форму с ошибками
Добрый день, подскажите, кто чем может. Ситуация: на странице есть ajax-форма для входа (логин ипароль + кнопка ВХОД). Задача:...

MVC ajax php
Не могу понять, как мне ajax(ом) подгружать данные при подходе MVC?Куда отправлять запрос? Ajax разместил во вьюхе class...

Обработать AJAX ом запрос выведенный циклом php
Здравствуйте ! Если выводятся циклом поля , можно ли их обработать с помощью AJAX? Не используя id!!! &lt;ul...

PHP AJAX Framework с поддержкой mvc
Для себя отметил: * JsHttpRequest от dklab - истинно кроссбраузерный, но по первому впечатлению, сложноват и не сильно удобен ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru