Не открыть страницу в аяксе

 
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1677
Здравствуйте. 1.10.6. Собрался вывести подразделы в каталоге статей в аякс-окне и что то не хочет работать. Делал так.
1.Создал в компоненте страницу куда выводятся подразделы и подключил аякс.
Код PHP:
  1. if ($do=='parent'){
  2. if($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') { cmsCore::halt(); }
  3. .........................
  4. cmsCore::jsonOutput(array('error' => false, 'html' => ob_get_clean()));
  5. }
2. В модуле "разделы статей" ссылка на на данную страницу
Код PHP:
  1. <a data-title="" href="javascript:void(0)" onclick="parent.listCat('{$cat.url}','{$cat.id}', '{$cat.title}');return false;"><img class="" src="/templates/gallery/image/zoom3.png" alt=""></a>
Простая(не аяксовская) ссылка имеет такой вид
Код PHP:
  1. <a class="gallery-block" href="{$cat.url}-{$cat.id}.html" data-title="">
  2. <img class="" src="/templates/gallery/image/zoom3.png" alt=""></a>
3.Функция
Код PHP:
  1. $(function(){
  2. parent = {
  3. listCat: function(cat_url, cat_id, cat_title) {
  4. core.message(cat_title);
  5. $.post('/' +cat_url+ '-' +cat_id+ '.html', {}, function(data){
  6. if(data.error == false){
  7. core.alert(LANG_NO_CAT, LANG_ERROR);
  8. }
  9. }, 'json');
  10. }
  11. }
  12. });
Без аякса страница открывается. С аяксом только само окно c постоянным "прогрессом" и передаётся переменная $cat.title, а сама ссылка непередаётся получается что ли scratch Подскажите, что не так?
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 2042
я не вижу в вашем аяксе url скрипта, который будет принимать данные на сервере (он должен иметь расширение *.php, иначе как он получит суперглобальный массив $_SERVER?), а так же не вижу данных. на месте данных у вас пустое место ваще. Что вы там пытаетесь передать и куда - вообще неясно. Данные у вас в строке get, а зачем тогда post? Одни несуразицы в вашем коде.

И если уж будете писать серверный скрипт, нафига получать данные прямо из $_SERVER или $_POST? Подключите ядро Инстанта и получайте все данные через него - в ядре все защитные механизмы уже есть.
Редактировалось: 1 раз (Последний: 26 марта 2015 в 19:57)
NOP
Реклама
cms
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1677
Странник:
я не вижу в вашем аяксе url скрипта, который будет принимать данные на сервере
Это этот скрипт /core/ajax/ajax_core.php?
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 2042
да нет же. это скрипт - приемник данных, который Вы пишете сами.
если нет приемника, нафига затевать возню с аяксом? аякс на странице как раз и служит для обмена данными с сервером через этот приемник.
Где вы его поместите - личное Ваше дело, но обычно его помещают рядом с фронтэндом в папке ajax. посмотрите для примера в тех компонентах, где он используется. в компоненте board, например.
и, естественно, в аяксе следует прописать путь к этому приемнику. а данные передавать проще в виде json (имхо, конечно).
NOP
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1677
Понятно,что недоучил, пойду разбираться. Сенкс. smile
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.