Здравствуйте! Не знаю сюда надо писать или куда, но о zend framework я не чего не нашел куда писать.. Столкнулся с такой проблемой, с php странице отправляю ajax запрос методом get на другой странице я его получаю, проблема в тому, что я не могу с той странице отправить запрос в базу.. Может кто-то может сказать, что я делаю не так или как нужно сделать это? Вот начальный код: Код (Javascript): $(document).ready(function(){ function funBefore(){ $("#information").text('Ожидание данные'); } function funcSuccess(data){ $("#information").html(data); }); } $("#pagination li").bind("click",function(e){ e.preventDefault(); var elem = document.getElementsByClassName('page'), i = elem.length; while(i--){ elem[i].onclick = function(i){}(i); } jQuery.ajax({ url:'/tableBody.php', type:'GET', data:({page: this.id}), dataType:'text', beforeSend:funBefore, success:funcSuccess }); }); }); Вот страница для вывода: PHP: <?php $post=array( array('id'=>1,'name'=>'post information name #1','text'=>'document information name or document information post'), array('id'=>2,'name'=>'post information name #2','text'=>'document information name or document information post'), array('id'=>3,'name'=>'post information name #3','text'=>'document information name or document information post'), array('id'=>4,'name'=>'post information name #4','text'=>'document information name or document information post'), array('id'=>5,'name'=>'post information name #5','text'=>'document information name or document information post'), array('id'=>6,'name'=>'post information name #6','text'=>'document information name or document information post') ); ?> <div style='border:1px solid #e9e9e9;width:50%;margin:0 auto;box-shadow: 0 0 3px #e0e0e0;padding:15px'> <?php foreach($post as $p):?> <?php if($p['id'] == $_GET['page']):?> <strong>Name post: <?=$p['name']?></strong> ||ID: <strong><?=$p['id']?></strong> <p><?=$p['text']?></p> <hr> <?php else:?> not foreach; <?php endif;?> <?php endforeach;?> </div> Проблема в том, что я не знаю как сделать для zend framework. На простой странице отправлять запрос в базу данных не думаю, что хороша идея и к тому же не думаю, что получиться так сделать за приделами controller,modul... Может кто-то помочь как нужно сделать правильно?
Если пишешь уже на zend framework, то ajax-запрос должен идти на контроллер, а ни куда попало. А там уже, через модели, сервисный слой, идти запрос в базу данных. AJAX-запрос ничем не отличается от любого другого для стороны сервера
Причём здесь путь к контроллеру, и папка public? ZF, как и любой другой фреймворк, перехватывает на index.php все запросы, и дальше их разбирает, и в итоге находит класс контроллера, и нужный метод. Насколько я помню, хотя мало работал с ZF, там тоже /controller/action идёт маршрутизация дефолтная. А JS, который ты привёл, запрос идёт не к контроллеру, а на некий конкретный PHP-файл.
Да я указал конкретный файл.. . Я просто не знаю как указать на контроллер, когда запрос оставляю пустим, то мне показывает страницу повторно.. не могу понять что просто нужно указать в url где будет приниматься запрос..
Ну значит вы нифига не понимаете ZF. Что вы про него читали? У него неплохая документация, в том числе на русском, и куча литературы и по первому и по второму. Надо указать url конкретной акции, которая обработает запрос. https://docs.zendframework.com/tuto...outing-and-controllers/#create-the-controller
Вот... Ну вот... А ладно. Вы когда делаете запрос через браузер. То указанная ссылка перенаправляется на index.php после чего она маршрутизируется, далее вызывается соответствующий контроллер и соответствующие модели и шаблон. Смотрим далее вы в строке браузера раз вызываете страничку, и при загрузке собственно вашего документа в js ещё раз её вызываете только аякс запросом и вставляете её вашей функцией funcSuccess. А теперь считаем раз и два. Вот вам и два раза. А ещё что это за порнография... ?) Вы консоль открывали в браузере ? У вас вообще скрипт ваш должным образом работает ? А теперь найдите одно отличие: Код (Javascript): $(document).ready(function(){ function funBefore(){ $("#information").text('Ожидание данные'); } function funcSuccess(data){ $("#information").html(data); } });
@1Feniks1, вам просто найти надо, как в Zend Framework отдать вьюху без layout-а (не нашёл пока нормального перевода, макет)