Гость
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP 8 взаимодействие backend-а и HTML-страницы? / 13 сообщений из 13, страница 1 из 1
06.07.2021, 06:49
    #40081986
MAULER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP 8 взаимодействие backend-а и HTML-страницы?
Здравствуйте.
Сразу прошу не пинать ногами за глупые вопросы, т.к. я только начал изучать PHP.
Штука интересная, многие вещи делаются просто, но некоторые просто заводят в тупик.

К примеру есть hello.php , который выводит два контрола в HTML:
Первый - это Select c options -ами:

Visual Studio Code
atom
Notepad++


и кнопку Button

Как происходит взаимодействие клиентского HTML со всеми кнопками и селектами с серверной стороной PHP?
К примеру, мне надо выстроить логику на бекенде PHP в зависимости от выбранного пункта SELECT-а и что-то перестроить на странице.
К примеру, если нажата Button то на PHP изменить элемент массива и перерисовать пункт "Atom" на "MSWord"?
...
Рейтинг: 0 / 0
06.07.2021, 07:35
    #40081993
MAULER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP 8 взаимодействие backend-а и HTML-страницы?
Вот код hello.php

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
<script type="text/jscript" src="jquery-3.2.1.js"></script>
<script type="text/javascript">

<?php
 $a = array("<option value='vsc'>Visual Studio Code</option>",
            "<option value='atom'>Atom</option>",
            "<option value='np'>Notepad++</option>"
 );
?>

function submitAction() {

  var selected = document.getElementById('sel_ID');
  var item = selected.options[selected.selectedIndex].text;
  var obj = {};

  obj.myData = item;

  request = $.ajax({
      url: "mylib.php",
     type: "post",
     data: obj,
  success: function(response) {
         console.log(response);
         // Здесь я получил ответ от бекенда mylib.php (response="Word")  
         // Как теперь перерисовать пункт "Atom" на "Word"?
  },
  error: function(jqXHR, textStatus, errorThrown) {
      console.log(textStatus, errorThrown);
  }
  });
}

</script>

<html>
 <body>
   <table>
      <tr>
        <td>
          <select name="ce" id="sel_ID">
            <?php
              foreach ($a as $key => $value) {echo $value;}
            ?>
          </select>
        </td>
        <td>
          <input type="button" value="change" onclick="submitAction();"/>
        </td>
      </tr>
   </table>
 </body>
</html>
...
Рейтинг: 0 / 0
06.07.2021, 09:36
    #40082006
Barlone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP 8 взаимодействие backend-а и HTML-страницы?
MAULER

Как происходит взаимодействие клиентского HTML со всеми кнопками и селектами с серверной стороной PHP?
Вообще обычно никак - php скрипт отработал на сервере, сформировал html станичку и закончил выполнение. И только потом полностью готовая страничка открылась у клиента в браузере. Но можно с клиента из javascript делать дополнительные запросы к серверу через XMLHttpRequest.
...
Рейтинг: 0 / 0
06.07.2021, 09:44
    #40082008
MAULER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP 8 взаимодействие backend-а и HTML-страницы?
Barlone,
Да, я так и представлял примерно. Но если мне нужно понажимать кнопочки из клиента в HTML, сделать запрос на сервер (через тот же $.ajax)
а потом перерисовать страницу в зависимости от ответа сервера?

Или это уже не про PHP?
...
Рейтинг: 0 / 0
06.07.2021, 10:27
    #40082024
s62
s62
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP 8 взаимодействие backend-а и HTML-страницы?
MAULER,

почитайте про формы в любом учебнике по php, например есть учебники и мануалы онлайн.
...
Рейтинг: 0 / 0
07.07.2021, 16:12
    #40082380
estic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP 8 взаимодействие backend-а и HTML-страницы?
MAULER, "перерисовать" прямо на клиенте - это вам в соседний раздел. PHP может:
- "перерисовать" на сервере и отдать полностью перерисованную страницу клиенту, а также послать "сигнал" клиенту для перехода на эту страницу (выполнить серверное перенаправление);
- отдать клиенту обновленные данные, чтобы клиент по ним сам "перерисовал" страницу или часть страницы.

При изучении PHP я не рекомендую вам смешивать JS (AJAX) и PHP. Учитесь перерисовывать на PHP. Вам это обязательно понадобится, даже если потом будете "смешивать". Прежде чем отдать данные клиенту, их в любом случае нужно как-то представить для передачи. Даже JSON-формат - это представление. Кроме того, можно делать API с двойным и т.д. представлением, например HTML/JSON.
...
Рейтинг: 0 / 0
07.07.2021, 16:25
    #40082388
estic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP 8 взаимодействие backend-а и HTML-страницы?
MAULER
К примеру, мне надо выстроить логику на бекенде PHP в зависимости от выбранного пункта SELECT-а и что-то перестроить на странице.
В зависимости о целей:
1) сохранить в куках, в сессии (так принято называть серверный кэш с ключом в куках) или в базе данных;
2) перенаправить на себя методом GET (или перенаправить на очень похожую, но все же другую страницу, т.е. страницу, имеющую другой адрес, например на странице /list выбрали какой-то "недефолтный" item и в результате перешли на страницу /list/item, содержащую тот же раскрывающийся список).
...
Рейтинг: 0 / 0
07.07.2021, 16:29
    #40082390
estic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP 8 взаимодействие backend-а и HTML-страницы?
Если переходить на другую страницу, то можно ничего не сохранять (все могло быть сохранено заранее).
Пример: hyde.pageshop.ru/tables
...
Рейтинг: 0 / 0
07.07.2021, 16:38
    #40082393
estic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP 8 взаимодействие backend-а и HTML-страницы?
estic
в результате перешли на страницу /list/item, содержащую тот же раскрывающийся список
Но с уже выбранным в этом списке item или выведенным item рядом со списком.
...
Рейтинг: 0 / 0
07.07.2021, 20:43
    #40082429
PHP 8 взаимодействие backend-а и HTML-страницы?
там без JS в любом случае никак
AJAX же
изменения в <select> ловятся через 'onchange=' или просто listener вешается
а там уже AJAX шлёт на сервер, откуда PHP возвращает новую строку с HTML-кодом

берите любой популярный фреймворк и не парьтесь.
...
Рейтинг: 0 / 0
08.07.2021, 02:06
    #40082486
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP 8 взаимодействие backend-а и HTML-страницы?
бабушкин зайчик
там без JS в любом случае никак
AJAX же
изменения в <select> ловятся через 'onchange=' или просто listener вешается
а там уже AJAX шлёт на сервер, откуда PHP возвращает новую строку с HTML-кодом

берите любой популярный фреймворк и не парьтесь.
+1
и забудьте про PHP
...
Рейтинг: 0 / 0
08.07.2021, 11:21
    #40082576
s62
s62
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP 8 взаимодействие backend-а и HTML-страницы?
На мой взгляд ТСу стоит раздельно разобраться, чтобы не было винегрета в уме, и почитать про 3 вещи.
1) HTTP протокол, запросы от клиента, какие они бывают и что в них есть, ответы от сервера. Как сервернная часть реализуется на PHP, переменные $_GET, $_POST и т.д. Например вот глава из старой книжки про формы.
2) AJAX и как он реализуется на клиенте.
3) Фреймворки клиентские и серверные.
...
Рейтинг: 0 / 0
08.07.2021, 13:08
    #40082637
s62
s62
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP 8 взаимодействие backend-а и HTML-страницы?
Раз возникает вопрос
MAULER Как происходит взаимодействие клиентского HTML со всеми кнопками и селектами с серверной стороной PHP?
то ещё можно почитать про html-формы https://developer.mozilla.org/ru/docs/Learn/Forms/Your_first_form
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP 8 взаимодействие backend-а и HTML-страницы? / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]