Моя проблема на самом деле не в самой загрузке ajax, а скорее в возможности загрузить его без javascript. Я имею в виду, что я легко справляюсь, когда кодирую весь свой проект только на основе доступности ajax ИЛИ только без использования ajax.
// РЕДАКТИРОВАТЬ: Хотя у Аренд уже был более или менее верный ответ, в то же время «прямого ответа на этот вопрос нет». Тем не менее, я бы хотел увидеть другие подходы разработчиков к таким сценариям, как мой! Даже несколько ссылок могут помочь!
В основном я просто расстраиваюсь, кодируя все дважды на одной странице, чтобы убедиться, что оба пользователя без и с включенным Javascript имеют одинаковый опыт. Это раздражает, и мне всегда было интересно, как другие решают эту проблему.
Когда я обновляю, например, два блока div с зависимостью от одних и тех же переменных, возникает беспорядок. Вот пример:
non-js-version
require 'classobject.class.php';
$another_var = 'something';
$class = new classobject($_POST['variable']); // just an example to show that this is dynamic - I'm aware of injection!
$function = $class->returnsth(); // returns 1
if(isset($_POST)) {
echo '<div id="one">Module 1 says:'; $require 'module_one.php'; echo '</div>';
echo '<br /><br />';
echo '<div id="two">Module 2 says:'; $require 'module_two.php'; echo '</div>';
}
Теперь в module_two.php
и module_two.php
у меня есть код, который выполняется по-разному в зависимости от возвращаемой переменной $ function .
Например:
if($function >= 1 && another_var != 'something') {
// do stuff
}
else {
// do other stuff
}
Теперь, когда это легко работает с перезагрузкой, когда я хочу загрузить два модуля на keyUp / enter / submit или что-то еще, у меня в основном несколько проблем:
$ _ POST
вручную в модули, чтобы использовать их $ another_var = $ _POST ['another_var'];
Меня это слегка раздражает, и мне интересно, как вы, ребята, это делаете. Я надеюсь, что мой способ кодирования не слишком глуп, но я не могу придумать другого способа. Вероятно, это сложно соотнести с моим очень простым примером, но привести весь проект с кодом было бы слишком сложно. Подводя итог, я ищу лучший способ кодирования и устранения этого беспорядка - должен быть способ! Я думал о сеансах, но для совместимости я тоже не хочу на них полагаться (если кто-то не разрешает файлы cookie).
В случае, если вы не можете понять, что я пытаюсь достичь с помощью этого способа сборки моего кода, я объясню сценарий, с которым я сталкиваюсь довольно часто ( не важно, если вы уже понимаете мои страдания ):
index.php
, где все выполняется, с телом html, стилем css и так далее. Эта страница ожидает некоторые переменные, которые устанавливаются со страницы, для которой требуется индекс (например, $ another_var
в моем примере). Надеюсь, это не слишком абстрактно. Подумайте о системе бронирования, в которой некоторые переменные устанавливаются со страницы, с которой вы переходите (событие, которое вы хотите забронировать), а затем еще несколько вещей устанавливаются пользователем (временной интервал, некоторые предпочтения, ...). В конце концов, он должен отображать результаты из базы данных вплоть до конечного результата - можно сказать, что пользователь сужает результаты от шага к шагу.