#php #javascript #html #css #dynamic
#php #javascript #HTML #css #динамический
Вопрос:
В настоящее время я использую PHP для рендеринга динамического веб-сайта на JS CSS HTML с помощью операторов echo. PHP заполняет некоторые переменные JS.
Я хочу расширить это, включив инструкции If / Else, но у меня есть несколько вопросов о том, как PHP взаимодействует с отображаемой страницей
Могу ли я по-прежнему вызывать дополнительные функции PHP после того, как сайт будет отрисован (напечатаны все инструкции echo)? Например, если я что-то нажму, могу ли я заставить это вызвать функцию PHP?
Не стесняйтесь указать мне на руководства по PHP, которые объясняют, как PHP взаимодействует с сайтом. По иронии судьбы я много кодировал на PHP для других задач, просто я никогда не думал об этом с нуля
Комментарии:
1. Нет, после выполнения PHP-скрипта вы получаете все содержимое и страницу. Таким образом, вы не можете вызвать функцию php с помощью onclick. Но используя ajax для события onclick, вы можете отправить запрос на сервер. Который, в свою очередь, может запускать функцию PHP, указанную в запросе, и может выдавать ответ в ответ
Ответ №1:
PHP не взаимодействует с сайтом. Единственной функцией PHP является вывод текста в браузер.
Посмотрите на это так: если бы у вас не было PHP, веб-сайт состоял бы из HTML-страниц. HTML-страницы могут содержать JavaScript, и пользователь может взаимодействовать с ними. Разница с PHP в том, что вы можете генерировать эти HTML-страницы динамически (что по ассоциации означает, что вы также можете динамически генерировать JavaScript, содержащийся на HTML-страницах). Больше ничего не изменилось.
Ответ №2:
В принципе, как только PHP-скрипт завершает работу и печатает (повторяет) все содержимое html в браузере browswer, он прекращает работу.
По сути, если вы нажимаете на веб-страницу, то это может либо вызвать новую страницу через форму POST, либо GET, либо, возможно, javascript может обработать щелчок. И тогда этот Javascript, возможно, может вызвать новый запрос. И этот новый запрос может вызвать PHP-скрипт, который выполняет любую задачу, которую вы хотите.
Итак, если вы нажмете на <a href='action1.php?param1=yes'>Click here</a>
ссылку, то это вызовет скрипт action1.php (с $_REQUEST['param1']
установленным значением 'yes'
) на веб-сервере, и веб-браузер отображает все, что он возвращает. И этот новый html заменяет весь html, который в данный момент находится в окне вашего браузера.
Или, если у вас есть форма:
<form action='action2.php' method='POST'>
<input type='text' name='stuff'>
<input type='submit>
</form>
И вы нажимаете «Отправить», затем снова будет вызван веб-сервер, но на этот раз скрипт action2.php будет вызываться с $ _POST[‘stuff’], установленным на то, что находится в текстовом поле. И все, что возвращает скрипт, будет отображаться в браузере.
Теперь, если вы хотите нажать на что-то в браузере и просто изменить что-то небольшое на странице или просто выполнить какое-то действие на сервере, то вам, вероятно, следует изучить обработчики AJAX и jQuery в частности
Удачи.
Комментарии:
1. Мне придется с этим поиграть.
Ответ №3:
В программировании я научился никогда не говорить «никогда»….
Помимо стандартного Ajax, есть способ запускать функции PHP асинхронно: xajax В двух словах, это позволяет вам вызывать функции PHP напрямую, без перезагрузки страницы. Предупреждаю — документация слабая….
PHP — это серверная технология, как упоминали другие. Заставить его работать асинхронно (или после того, как главная страница была разорвана, в зависимости от обстоятельств) можно только с помощью некоторого Javascript voodoo, который xajax предлагает на стол. Он выполняет «достаточно хорошую» работу, делая это возможным. Лично я решил использовать Jquery из-за огромной мощности, которую он дает для разработки пользовательского интерфейса. Существует множество опций для выполнения Ajax-вызовов.
Ключом к продвижению вашего понимания вперед является размышление о кодировании для внешнего интерфейса. Когда я начинал свою карьеру, я был исключительно серверным специалистом, сосредоточившись на стандартных if / thens / elses и повторяя соответствующий код. Как только это появилось на экране, я закончил с этим. Переход к концентрации на интерфейсе требует понимания структуры dom — того, что вы будете использовать для «захвата» элементов, а затем понимания таких технологий, как javascript, чтобы «делать вещи» с вашими данными. В двух словах, это просто другой способ делать то, к чему вы привыкли, с немного другим синтаксисом. Вместо того, чтобы сразу бросаться решать Ajax или эту конкретную задачу, потратьте некоторое время на ознакомление с основами обхода Dom и, возможно, с некоторыми основами Javascript или Jquery. В долгосрочной перспективе это значительно облегчит вашу работу.