X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Ссылки в Ajax
bor10811
bor10811
Topic Starter сообщение 19.7.2019, 17:33; Ответить: bor10811
Сообщение #1


Делаю сложный сайт, где много контента должно подгружаться с помощью ajax. Разумеется, хотелось бы поместить все js файлы в отдельную папку (вместе с ajax скриптами).

В чём суть. В файле controller.php подключается ajax.js, различные настройки и другие скрипты. В нём же подключается manage.php, где находятся ссылки и блоки, с которыми работает ajax-скрипт. Запросы ajax-скрипт отправляет на файл content.php. Вся эта система подключена к index.php, который является, своего рода, главным контроллером. И проблема в том, что ajax вроде работает, но при этом либо не находит content.php, либо не может с ним взаимодействовать по каким-то причинам. Не пойму в чём дело.

Структура папок:

Корень
  L Папка "work" => файл index.php
       L Папка "js" => файл ajax.js
       L Папка "page" => файл controller.php
            L Папка "includes" => файл manage.php
            L Папка "model" => файл content.php

Фишка состоит в том, что, когда все файлы находятся в одной папке, то проблем никаких не возникает. Но когда я пытаюсь разнести их все по разным папкам, то ajax ломается. При этом функция ожидания ответа (beforeSend) работает, да и в целом другие скрипты работают исправно. Но вот success ничего не возвращает.

Файл controller.php:


<head>
  <script src="js/jquery.js"></script>
  <script src="js/ajax.js"></script>
</head>
<body>
<?php include('includes/manage.php'); ?>
</body>


 

Файл ajax.js:



function funcBefore(){
  $("#information").text("Ожидание данных")
};
function funcSuccess(data){
  $("#information").text(data)
};
$(document).ready(function (){
  $("#load").bind("click", function() {
    var admin = "Admin";
    $.ajax({
      url: "content.php",
      type: "POST",
      data: ({name: admin, number: 5}),
      dataType: "html",
      beforeSend: funcBefore,
      success: funcSuccess
    });
  });
});

Файл manage.php:

<p id="load" style="cursor: pointer;">Загрузить данные</p>
<div id="information"></div>

Файл content.php:



<?php echo 'Name: '.$_POST['name'].', number: '.$_POST['number']; ?>


При клике по "Загрузить данные" на какое-то мгновение появляется "Ожидание данных", после чего оно пропадает, но на его месте ответа от content.php не отображается. Я так понимаю, что есть какая-то проблема в самой ссылке url: "content.php", но пробовал писать абсолютный путь и это тоже ни к чему не привело.



Файл manage.php:
 

 

0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
icoder
icoder
сообщение 19.7.2019, 18:46; Ответить: icoder
Сообщение #2


Какая-то запутанная у вас структура приложения...
Вроде бы как есть задумка придерживаться MVC, но реализация мягко говоря не та...
Почему у вас в контроллере размещен html шаблон?
index.php должен быть не главным контроллером, а всего лишь точкой входа.

(bor10811 @ 19.7.2019, 20:33) *
data: ({name: admin, number: 5}),


зачем здесь скобки?

data: {name: admin, number: 5},

(bor10811 @ 19.7.2019, 20:33) *
success: funcSuccess


почему не передаете в функцию ответ от сервера?

success: funcSuccess(data)



Сообщение отредактировал web-coder - 19.7.2019, 18:46


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
bor10811
bor10811
Topic Starter сообщение 20.7.2019, 15:07; Ответить: bor10811
Сообщение #3


Если попробовать удалить скобки или передать данные funcSuccess(data), то тогда вообще всё ломается и не работает.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
icoder
icoder
сообщение 20.7.2019, 15:42; Ответить: icoder
Сообщение #4


bor10811, попробуйте так

$(document).ready(function(){
$("#load").on("click", function() {
var formData = new FormData();
formData.append("name", "Admin");
formData.append("number", 5);
$.ajax({
url: "/page/model/content.php",
type: "POST",
dataType: "html",
cache: false,
contentType: false,
processData: false,
data: formData,
beforeSend: function(){
$("#information").text("Ожидание данных")
},
success: function(data){
$("#information").text(data)
}
});
});
});


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
bor10811
bor10811
Topic Starter сообщение 20.7.2019, 16:47; Ответить: bor10811
Сообщение #5


Интересная мысль, но кажется я начинаю понимать, в чём была проблема. Было два момента:
- во-первых, ajax почему-то отказывался работать с файлом, если он находился не в корне (странная проблема, ведь на локальном сервере такого феномена не было). Решил дилемму тем, что вынес нужные файлы в корень
- во-вторых, файл htaccess нарушал работу ajax, решил проблему добавив строчку для исключения post-запросов из правила: RewriteCond %{REQUEST_METHOD} !POST
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
icoder
icoder
сообщение 20.7.2019, 17:10; Ответить: icoder
Сообщение #6


(bor10811 @ 20.7.2019, 19:47) *
ajax почему-то отказывался работать с файлом,он находился не в корне (странная проблема, ведь на локальном сервере такого феномена не было)
 
А из браузера это адрес был доступен? Проверяли этот  момент?


Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Ссылки за которые не стыдно! Качественный линк билдинг сервис под Бурж от Westrank. Честный прайс.
63 DaoDog 47017 Сегодня, 12:05
автор: Omaxis
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыКрауд ссылки с форумов, блогов, порталов. Жирные ссылки с Ua,Ru, Бурж площадок. Вечные ссылки в статьях на собственных сайтах
Быстро, качественно и ответственно!
138 vetalbon 66417 13.4.2024, 17:53
автор: vetalbon
Открытая тема (нет новых ответов) SEO Линк Билдинг под Бурж | Вечные ссылки США, Европа и Мир с Гарантией
20 Needmylink1 6999 12.4.2024, 23:32
автор: Needmylink1
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыВечные ссылки с трастовых сайтов
53 1informer 22670 7.4.2024, 13:47
автор: 1informer
Открытая тема (нет новых ответов) Оптом и в розницу, скупаю ссылки околомедицинской тематики.
3 kasey7 2012 4.4.2024, 19:12
автор: kasey7


 



RSS Текстовая версия Сейчас: 19.4.2024, 13:54
Дизайн