Intereting Posts
ffmpeg не может установить модуль расширения PHP Могу ли я получить больше переменных вместо строки в jquery $ ajax? php удаляет определенную папку и все ее содержимое SendGrid: применение шаблонов к методу зависания щенков WEB API php теряет форму POST-параметров Служба sensio_distribution.webconfigurator не найдена Преобразование объекта класса stdClass в объект JSON php mysql двойной диапазон дат Входы и эхо-сигналы от textarea неоднократно получить атрибут src изображения на основе класса или идентификатора Когда im отправляет запрос Ajax в моем веб-приложении, тогда сторона контроллера дает мне скрипт в параметре запроса в laravel Невозможно выполнить повторный инициализацию объекта после его сохранения в базе данных Сессионные файлы cookie http и secure flag – как вы их устанавливаете? MySQLi DATE_FORMAT не работает вообще Использование строкового пути для удаления элемента из массива

Как запускать несколько вызовов ajax на одной странице

Если я создаю «ajaxified» пользовательский интерфейс со многими вызовами ajax для создания, переименования, удаления различных вещей на моей странице – как лучше всего обрабатывать все эти «коды за» ajax-страницами? Сначала у меня был другой файл .php для каждого вызова (например, Candy_Rename.php, Candy_Delete.php). Но я обнаружил, что моя база кода становится подавляющей с количеством созданных файлов.

Теперь я отправляю параметр «command» с моим запросом, а затем я управляю всеми вещами, связанными с Candy, в одном файле «ajax_Candy.php». Так, например, мой запрос jQuery будет:

$.get('ajax_Candy.asp', { command: 'insert', candyName: 'Jolly Ranchers' }, function (response) { alert(response.candyId); } 

Это хороший способ сделать это?

Редактировать: все ответы были отличными и говорили почти то же самое. Я должен был выбрать один, и я подумал, что упоминание о безопасности важно для всех, кто путешествует по этому пути – так что вы идете. Я использую оператор switch как один из упомянутых пользователей.

Предполагая, что вы работаете с проблемами безопасности на стороне сервера, я не вижу проблемы с вашим методом. Файл PHP должен удостовериться, что запросчик имеет привилегию выполнить команду. Вы не хотите, чтобы пользователь удалял все ваши записи …

Конечно, то, что вы сейчас делаете, намного лучше. Просто один файл, который контролирует все действия. Обычно я использую оператор switch для команды, чтобы сохранить все красивое и чистое.

 switch($_GET[command) { case 'insert' : do insert stuff; break; case 'delete' : do delete stuff; break; } 

Да, это лучше. Нет ничего плохого в большом количестве файлов, однако вы должны стремиться поддерживать взаимосвязанную функциональность вместе – высокая сплоченность.

Но не переходите за борт, и пусть один файл php обрабатывает больше, чем просто Candy. Если вы начнете искать дублирование кода среди ваших php-файлов, начните подклассу.