Как передать переменную PHP в HTML и обратно?

Автор: | 17.07.2016

kak-peredat-peremennuyu-php-v-html-i-obratnoВсем привет! :-)

Сегодня я решил затронуть тему передачи переменных между бэкэндом и фронтэндом, с которой сталкиваются абсолютно все начинающие разработчики. В частности, сегодня мы рассмотрим примеры передачи переменных из PHP в HTML и обратно, а также их вызова в обоих случаях.

Идея этой статьи у меня появилась после поиска мною соответствующего материала в сети, после которого ничего путного найти не удалось.

Дело в том, что сегодня люди начинают своё знакомство с веб-программированием изучая разнообразные платформы: CMS, фрэймворки и т.д., в которых механизм передачи переменных реализован своим уникальным образом.

Где-то переменные бэкэнда записываются в глобальный массив, а в html-шаблонах вызываются оттуда. В других случаях используются шаблонизаторы, типа Smarty, со своими механизмами передачи данных. В данной ситуации всё зависит от фантазии разработчика.

Таким образом, перед людьми, начавшими своё знакомство с языками написания сайтов благодаря готовым движкам, иcчезла необходимость изучения механизмов передачи данных для «чистых» PHP и HTML.

Но всё же, иногда такая необходимость появляется, причём не только у начинающих, но и у опытных юзеров.

Кому может быть полезно понимание механизма передачи данных из PHP в HTML и обратно?

Представьте, что вы захотели написать собственный движок :-) Тем более, что рано или поздно, в учебных целях или коммерческих за такую работу принимается больше половины программистов Земного шара.

А до этого вы работали только с готовым продуктом, в котором свой механизм передачи данных, т.е. необходимости вникать в тонкости «стандартной» передачи у вас не было.

Или, к примеру, вас не устраивает используемый в вашем проекте шаблонизатор (программная надстройка, позволяющая минимизировать содержание бизнес-логики в графических шаблонах, т.е. убирать из html php-конструкции, ограничиваясь только вызовом переменных, функций и файлов), и вы решили написать собственный.

Или же совсем жизненный пример — вы ищете работу, а в предлагаемом тестовом задании без использования в html php-данных никуда. Причём, тестовое нужно сделать на «чистых» языках, а не с использованием горячо любимых вами и используемых фреймворков.

Ну, про новичков, которые только начинают работать с PHP и HTML, о ценности рассматриваемого сегодня вопроса я вообще умолчу.

В результате вы идёте в Интернет — и вместо конкретного ответа на вопрос вы находите только обсуждения на форумах, где ничего толкового нет.

Но ничего — сегодня мы исправим эту ситуацию 😉

Как передать переменные PHP в HTML?

Для примера создадим простенький тестовый скрипт index.php:

<?php
    $hello = 'Привет, мир!';
    require_once('index.html');
?>

Как видите, в нём всего 2 строчки: в первой объявляется переменная $hello со значением «Привет, мир!», а во второй мы подключаем наш html-шаблон, в котором будет выводить нашу переменную следующим образом:

<html>
    <head>
    </head>
    <body>
        <div>Переменная из php:
            <span><?php echo $hello; ?></span>
        </div>
    </body>
</html>

Здесь, как видите, тоже всё очень незамысловато: для вызова необходимой конструкции её нужно заключить между скобками <?php … ?> (при соответствующих настройках сервера возможен сокращённый вариант записи <? … ?>) и вывести с помощью оператора echo.

В результате, при запуске скрипта в вашем веб-браузере вы увидите следующий результат:

peredacha-peremennoj-php-v-html

Надеюсь, вы не забыли скопировать скрипт и html-файл в каталог, соответствующий новому сайту, на локальный веб-сервер и запустить сервер? Если желаемая надпись в браузере не появилась — проверьте порядок выполняемых действий ещё раз.

Как передать массив PHP в HTML?

Передачу простых переменных мы рассмотрели. А как насчёт массивов, можете спросить вы? Действительно, передача массивов также весьма востребована в случаях, когда необходимо в HTML вывести списки объектов из PHP.

В качестве примера, видоизменим наш PHP-скрипт, сделав из переменной $hello массив:


<?php
    $hello = array('Привет!', "Мир!");
    require_once('index.html');
?>

В данном случае описанный нами способ вызова переменной PHP в HTML выдаст следующий результат:

peredacha-massiva-php-v-html

И это вполне логично, т.к. распечатать содержимое PHP-массива с помощью echo не получится — на экран выводится «Array», что всего лишь указывает на то, что выводимая на экран структура данных — это массив.

Содержимое массива можно просмотреть, выводя его элементы в цикле. Для этого немного видоизменим наш HTML-шаблон:

<html>
    <head>
    </head>
    <body>
        <div>Переменная из php:
            <ul>
                <?php foreach ($hello as $str) { ?>
                    <li><?php echo $str; ?></li>
                <?php } ?>
            </ul>
        </div>
    </body>
</html>

В результате, после повторного запуска скрипта в веб-браузере, на экране мы увидим следующее:

vyvod-dannyh-massiva-php-v-html

Приведённый выше html-код вы можете найти на странице категории абсолютно любого Интернет-магазина, т.к. отображаемые там товары — это содержимое передаваемого PHP-массива.

Ещё один факт, на который следует обратить внимание в предыдущем примере — это возможность использования PHP-операторов и конструкций в HTML (в данном случае используется функция перебора массива foreach), которые также необходимо прописывать между открывающим и закрывающим тэгами <?php?>.

Т.е., подводя краткое резюме под написанным ранее, для передачи переменной из PHP в HTML, HTML-документ должен быть подключён в PHP с помощью директив include или require, после чего объявленные в скрипте переменные будут доступны в шаблоне.

Как вы могли заметить, язык PHP прекрасно взаимодействует с HTML — это его базовая фича, которая у него «в крови», т.е. реализуется без каких-либо дополнительных манипуляций :-)

Следующим этапом мы рассмотрим обратную сторону данного взаимодействия двух языков — а именно, передачу данных из HTML в PHP.

Передача данных из HTML в PHP

Для данного действия нам потребуется разместить данные в HTML внутри формы, т.е. внутри открывающего и закрывающего тэгов <form></form>. Для этого используем другой тестовый пример, файл index.html которого будет выглядеть так:

<html>
    <head>
    </head>
    <body>
        <form method="POST">
            Имя: <input type="text" name="login">
            Пароль: <input type="password" name="password">
            <input type="submit" value="OK">
        </form>
    </body>
</html>

Как вы могли догадаться, он представляет из себя примитивную форму авторизации пользователя на сайте, в которой пользователь будет вводить логин и пароль и нажимать на кнопку «ОК» для отправки данных на сервер.

Немного комментариев по поводу передачи в PHP данных HTML-форм (если вдруг кто не в курсе). HTML-формы, как уже было сказано, представляют из себя пару тэгов <form></form>, между которыми располагаются элементы формы, представляющие собой тэги <input> (закрывающий тэг не требуется) со следующими атрибутами:

  • name — будет использоваться как идентификатор элемента для получаения его значений в PHP;
  • type — тип элемента. В зависимости от вводимых в элемент данных может быть «text», «password», «button» и т.д.
  • value — значение элемента по умолчанию (текст в поле до ввода данных, надпись на кнопке и т.д.).

Конечно, это далеко не полный список атрибутов. Я привёл только самые необходимые. Если хотите, чтобы я рассказал обо всех возможных — отпишитесь в комментариях. Жду ваших ответов :-)

Тэги <input> также могут быть заменены и дополнены специализированными тэгами <button>, <textarea> и т.д., у которых будут присутствовать те же атрибуты, что и у <input>.

Обязательным для каждой формы является наличие элемента с типом «submit», который представляет собой кнопку для отправки данных HTML-формы с помощью HTTP-запроса к серверу, на котором расположены скрипты PHP, обрабатывающие его.

Благодаря возможностям JavaScript и его библиотек элемента с типом «submit» может и не быть — имейте это ввиду при внесении правок в код своего сайта.

У отправляемого HTML-формой HTTP-запроса также есть несколько параметров, которые задаются в качестве атрибутов тэга <form>:

  • method — содержит одно из двух значений GET/POST, основным различием между которыми является метод передачи данных. При передаче методом GET они будут добавляться в url сайта в виде «http://siteurl.com/index.php?login=UserName&password=qwerty», что, соответственно, небезопасно. А при POST данные будут скрыты, поэтому в данном примере он и применяется. К тому же методом POST можно передать данные бОльшего размера, чем GET;
  • action — будет содержать адрес скрипта, который будет обрабатывать оправленные формой данные. По умолчанию данные передаются в тот же скрипт, через который был вызван HTML-шаблон. В моём примере данный вариант меня вполне устраивает, поэтому я не указывал значение для данного атрибута;

Напомню, что структура данного тестового сайта такая же: каталог с HTML-документом, содержащим интерфейс для взаимодействия пользователя с сайтом и PHP-скрипт, который его вызывает. Последний будет иметь следующий вид:

<?php
    if(!empty($_POST))
    {
        echo '<pre>';
        print_r($_POST);
        die();
    }
    require_once('index.html');
?>

Как видите, данные, отправляемые HTML-формой, будут содержаться в массиве POST, который доступен в PHP в виде конструкции $_POST. В нашем случае, после нажатия на кнопку «ОК» в HTML-форме, скрипт выведет на экран следующее:

peredacha-dannykh-v-php-s-pomoschyu-html-formy

Как видите, в случае удачного HTTP-запроса массив POST будет содержать введённые в форме данные в формате «значение атрибута name элемента формы» => «введённое в элемент значение».

Далее в PHP можете обрабатывать данные так как вам захочется :-)

К слову, данные переданные из HTML-формы в PHP, могут быть доступны в массиве, соответствующему названию метода, с помощью которого они передавались. Если данные передавались методом POST, то искать их нужно в массиве $_POST, если GET — то, соответственно, в $_GET.

Данные, переданные любым из указанных способов также могут быть доступны через массив $_REQUEST, который помимо помимо содержимого массивов $_GET и $_POST также может содержать данные суперглобального массива $_COOKIE, который содержит данные, сохранённые в cookie-файлах (известные в Рунете куки) вашего браузера.

Также, до версии PHP 4.3, в данном массиве содержались ещё и данные о передаваемых через HTML-форму файлах из массива $_FILES, но они были выделены в отдельный массив.

Таким образом, сегодня мы рассмотрели механизм взаимодействия путём передачи данных между HTML и PHP, бэкэндом и фронтэндом ваших сайтов.

Надеюсь, что информация была для вас полезной :-) Жду ваши отзывы в комментариях под статьёй и подписки на обновления сайта, чтобы вы были в курсе новых статей.

Также, пользуясь случае, хочу всех вас пригласить в паблик нашего проекта Вконтакте для обсуждения волнующих вас вопросов. Также здесь вы всегда найдёте массу увлекательных статей, конкурсов и весёлой информации, которая сделает вас на шаг ближе к сайту своей мечты.

Милости просим :-)

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
7 голосов, в среднем: 4.4 из 5

36 комментариев к статье "Как передать переменную PHP в HTML и обратно?"

  1. Владимир

    Огромное спасибо за информацию!
    Только начинаю разбираться с PHP.
    У меня сайт на чистом html с использованием ssi.
    И я задумал сделать для него микроразметку для рейтинга google и поисковых сайтов.
    Как раз понадобилось чтение базы данных.

    Попробовал подключить сайт через index.php
    Данные появились
    Но:
    — перестал работать ssi
    — кодировка страницы изменилась

    Если с кодировкой наверное найду способ разобраться, то с ssi — пока не знаю что делать.

    1. Pashaster Автор

      Здравствуйте! У меня к Вам два вопроса:

      1. Что такое ssi?
      2. Попробовал подключить сайт через index.php — то Вы конкретно делали? Опишите весь порядок действий, пожалуйста.

  2. Владимир

    Здравствуйте, Павел!
    я сделал сайт давно на чистом html
    У меня главная страница — index.shtml сайт avon.kharkov.ua
    Пробовал сделать подключение через index.php:

    ————————————-
    ssi — server side include
    на всем сайте меню подключается этой технологией — очень много страниц (вручную исправлять на php нереально).
    ————————————-
    ssi не заработала, пришлось отказаться от index.php
    ————————————-
    в итоге сейчас php пишет значение рейтинга в файл
    а на странице я это значение считываю javascript

    Сейчас пока у меня проблеммка — микроразметка google не понимает мою переменную javascript

    1. Pashaster Автор

      Проблемы поисковиков с JS-кодом наблюдались всегда) Поскольку JS выполняется динамически, а робот поисковой системы сканирует лишь HTML-код страницы, то вполне возможно, что JS-переменная не будет восприниматься.

      1. Укажите, что за переменная и попробуйте её сами найти в коде страницы в браузере — Ctrl+U.
      2. Попробуйте изменить алгоритм вывода значений рейтинга

  3. Александр

    Пытаюсь понять web-программирование. Пока не очень.
    Есть задача: периодически, раз в 5 минут запрашивать из клиентского Js-скрипта несколько переменных у серверного скрипта на PHP и разместить их в нужные текстовые поля. Данные PHP-скрипт должен взять из БД Access.
    Как это можно сделать?

    1. Pashaster Автор

      Добрый день!

      В вашем случае вам понадобится технология AJAX, с помощью которой вы будете без перезагрузки страницы отправлять запросы из JS кода в PHP скрипт и обрабатывать ответ от него. Конкретно в вашем случае нужно будет создать html документ с формой и полями, в котором будет подключаться js файл, например, так:

      <html>
          <head></head>
          <body>
              <form action="script2.php" method="POST">
           	    <input name="field1" id="field1">
      	    <input name="field2" id="field2">
      	    <input type="submit" value="Send">
      	</form>
      	<script type="text/javascript" src="javascript.js"></script>
          </body>
      </html>
      

      В JS файле будет производиться AJAX запрос по таймауту в 5 минут (5*60*1000 милисекунд) с помощью функции setInterval следующим образом:

      setInterval(function(){
          var xhr = new XMLHttpRequest();
          xhr.open('POST', 'script.php', false);
          xhr.send();
          if (xhr.status != 200) {
      	alert('Got the error ' + xhr.status + ': ' + xhr.statusText);
          } else {
      	var result = JSON.parse(xhr.responseText);
      		
      	var a = result[0];
      	var b = result[1];
      				
      	document.getElementById('field1').value = a;
      	document.getElementById('field2').value = b;	
          }		
      }, 5*60*1000);
      

      В моём примере отправляется запрос типа POST к скрипту script.php, который лежит на одном уровне с js файлом. В нём-то у вас и будет производиться выборка данных из БД. Сам скрипт будет выглядеть примерно следующим образом:

      <?php
      
      $var1 = rand(0, 5);
      $var2 = rand(0, 5);
      
      $result = [$var1, $var2];
      
      echo json_encode($result);
      

      Я сделал запись в переменные случайных значений. У вас же вместо них будет информация из базы данных сайта. Надеюсь, что я доступно объяснил :-)

      Если будут вопросы — обращайтесь.

  4. Александр

    Спасибо за ответ.
    У меня не работают 2 последних строки в php:

    $result = [$var1, $var2];
    echo json_encode($result);
    

    Как я понимаю, в первой строке должно производиться присвоение переменной $result строки, а что делает вторая, не понимаю. По идее, формат json_encode должен что-то преобразовать во что-то, понятное браузеру.

    1. Pashaster Автор

      Первая строка — это запись массива из переменных $var1, $var2 в переменную $result. Последняя — вывод на экран массива, представленного в JSON формате (для корректной передачи и обработке в JavaScript).

      Как именно вы поняли, что строки не работают?

  5. Александр

    Мои познания где-то на так себе уровне VB 6.0. Я просто создал в блокноте файлы, добавив в конце, приведённого вами php скрипта: «?>», заменил в ytml в строке:

    script2.php на script.php,
    скопировал их в папку «www» Small http server, на котором установлен php version 3.0 и запустил. Вижу два текстовых поля ввода и кнопку «send». Если ничего не вводить, ничего не происходит, если ввести числовые значение в ода поля и нажать кнопку, получаю ответ:
    Parse error: parse error, unexpected ‘[‘ in C:\shttps\www\script.php on line 6
    Если оправлять данные:

    echo ($var1);
    echo ($var2);
    

    получаю два числа вверху окна без занесения в поля.
    Саму идею увидел на страничке:
    http://www.coolwebmasters.com/codes-and-scripts/2545-pushing-updates-to-the-web-page-with-html5-server-sent-events.html

    В моём случае кнопка отправки данных на сервер не нужна. Нужны просто поля, в которые сервер будете пересылать данные.
    Как видите, мне очень сложно понять даже простые вещи.

    1. Pashaster Автор

      Не переживайте вы так сильно :-) Ничего страшного же не произошло :-)

      Ошибка PHP связана, скорее всего, с тем, что вы используете невероятно устаревшую версию PHP на вашем веб-сервере: php version 3.0.

      Не знаю, по каким мануалам вы устанавливали и настраивали локальный веб-сервер, но сейчас актуальная рабочая версия PHP 7.1, поэтому некоторые синтаксические конструкции и вызывают ошибки в вашем случае. Я лично рекомендую использовать для локальной разработки OpenServer, если вы работаете под Windows, т.к. сам им пользуюсь и не нарадуюсь :-)

      И да, script2.php не нужно было менять на script.php, т.к. таким образом я хотел как раз сделать акцент, что для обработки запроса, отправленного с помощью формы, нужен другой скрипт, отличный от того, что получает данные из БД в вашем случае и генерирует случайные числа в моём.

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

      1. Александр

        Скачал версию PHP 7.1.10. Почитал об установке. Что-то сложно. Старую версию просто распаковал в директорию «php» сервера и прописал путь к папке в настройках сервера.
        Поищу более подробное описание по установке PHP и попробую запустить.
        Small http server выбрал из-за простоты настроек. Мне нужно организовать работу в локальной сети предприятия. Этот наносайт из одной страницы нужен, максимум, для четырёх потребителей, чтобы они не звонили по телефону, а смотрели в браузере. Мне предлагали сделать программки 5-ти минутного удалённого опроса БД, находящейся на моём компьютере на VB и установить у потребителей. Но у двух оказались «Дебиан» и «федора». Вот и пытаюсь что-то простенькое сделать. И, судя по реакции руководства, это надо только мне, чтобы не дёргали звонками.
        При отправке со станички, текстовые поля исчезают вместе с кнопкой. Чтобы написать ещё один скрипт, поищу как работать с БД на PHP. К сожалению, в книгах описывают только два случая: базу сотрудников и интернет магазин.
        Не могли бы вы посоветовать, что почитать, применительно к моему случаю?

  6. Pashaster Автор

    По поводу исчезания полей при нажатии на кнопку «отправить» — просто уберите следующий элемент из HTML:

    <input type="submit" ... >
    

    Да и вообще, если вам просто нужно будет мониторить данные без их изменения, то сверстайте простую страничку с текстовыми блоками без форм, как в моём примере. Тогда никто никого не будет сбивать с толку.

    Если сайт будет крутиться в локальной сети — установите себе на ПК OpenServer, как я вам сказал, и не мучайтесь с настройками PHP. Работать с ним просто — пару кликов мышки. Почитайте на моём сайте о работе с ним, я упоминал отдельные моменты в статьях. Просто пройдитесь поиском по сайту с запросом «OpenServer».

    Когда поставите OpenServer и сделаете сайт, то настройте OpenServer, чтобы сайт открывался по вашему локальному IP — тогда все остальные пользователи смогут увидеть информацию на нём.

    Я, кстати, предоставленный пример делал и тестировал исключительно на OpenServer. Сайт состоял из 3 файлов, содержимое которых я вам и скинул. Только HTML засуньте в файл с названием index.html — OpenServer тогда будет воспринимать его как точку входа.

    Для работы с БД пишите свой код в файле, где генерируются сейчас случайные числа. Для работы с Microsoft Access из PHP — сам таким на практике не занимался. Из литературы могу порекомендовать следующее:

    http://php.net/manual/ru/faq.databases.php#faq.databases.access — общие положения, сильно не углубляйтесь, т.к. это просто теория.
    https://stackoverflow.com/questions/19807081/how-to-connect-php-with-microsoft-access-database — примеры кода
    https://www.sitepoint.com/using-an-access-database-with-php/ — ещё примеры кода

    В последних инфа на английском, но, зато более полезная с практической точки зрения :-)

    Будут сложности с запуском сайта на OpenServer — пишите на cccpblogcom@gmail.com, вышлю исходники. Только не злоупотребляйте моей добротой, попробуйте сначала сами :-)

  7. Александр

    Спасибо за ответ. Буду читать.
    «Дело новое, не освоенное. Народ хочет разобраться :-)».
    Конечно, интересно самому понять.

    1. Pashaster Автор

      Это да :-) В этом деле главное не торопиться, а то можно таких дров наломать, что потом неделю разбираться можно в причине…

  8. Александр

    Проблемка:(
    У меня Windows XP и максимум, что может поддерживаться — PHP 5.4. Как я понимаю, из-за этого возникает ошибка — Got the Error 0:
    Качаю книгу по PHP 5.4

    1. Pashaster Автор

      Эм… кто вам сказал о таких ограничениях?…

      И если вы до сих пор пытаетесь использовать чистый PHP, то зря. Поставьте уже OpenServer или, если не нравится, XAMPP. Готовую WAMP сборку, одним словом.

      У меня у самого старый комп больше Windows XP не тянул, так благодаря OpenServer спокойно себе работал с PHP 7.

      А с динозаврами (я про старые версии) даже и не думайте связываться — неблагодарное дело :-)

  9. Александр

    Я скачал последнюю версию OpenServer Premium 5.2.7.
    При первой установке согласился на установку Runtime C+. Запустил и получил сообщение о том, что PHP 5.6 и Apache 2.4 работает только начиная с Windows 7. Установил галочки против PHP 5.4 и Apache 2.2. положил файлы в папку c:\OSPanel\domains\test и при обращение по адресу http://127.0.0.1/test/Index.hml получаю:
    Object not found!

    The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again.

    If you think this is a server error, please contact the webmaster.
    Error 404
    127.0.0.1
    11/30/17 23:21:30
    Apache
    Если не создавать папку, а просто положить файлы в папку c:\OSPanel\domains\, ошибка та же.
    Установил PHP 5.4 на Small http server и тоже ошибка: Got the error 0:
    Что-то в последнее время мне не везёт «на старте».

    1. Pashaster Автор

      Да, напутал я что-то с версиями…

      Можно, конечно, поставить виртуалку с Windows 7+ и OpenServer с последней версией PHP или же вообще остановиться на установке чистых компонентов (PHP, MySQL, Apache)… Но слишком много мороки…

      По поводу запуска сайта в Вашем случае, он должен был открыться по адресу http://test/Index.html

      Если снова будут проблемы, то назовите каталог с файлами сайта в формате типа test.site или test.local, чтобы это было похоже на доменное имя.

      Всё, что лежит в domains, открывается как отдельные сайты. Примером является http://localhost/, при переходе на который отображаются в браузере файлы из каталога openserver/domains/localhost

  10. Александр

    Совсем дилетантский вопросы:
    1. Если JavaScript интегрирован в html файл, то он вместе со страницей передаётся клиенту. А что происходит в случае, приведённом вами?
    2. Возможно ли «убедить» JavaScript исполниться на сервере?

    1. Pashaster Автор

      1. Честно говоря, я не знаю точно, как именно браузеры обрабатывают JS код в данной ситуации, никогда не копался в данном вопросе. Могу только высказать своё предположение, что при обработке HTML кода браузер переходит по всем ссылкам, указанным в нём и скачивает файлы, помещая себе их в кэш, подключая их потом на страницу виртуально.

      2. Серверный JS сейчас — очень популярная сегодня тема. Я также стараюсь её постоянно избегать, т.к. считаю её ересью :-) Сегодня на JavaScript пишут серверную часть не только для сайтов, но и программируют на нём железо благодаря Node.js. Также знаю, что новомодные библиотеки типа ReactJS и Vue.js выполняют JS код на сервере, отдавая браузеру уже собранный HTML. Если будет интересно — почитайте об этом на специализированных сайтах, здесь я вас вряд ли проконсультирую.

  11. Андрей

    Доброго времени суток всем посетителям сайта. У меня такой вопрос я только начинаю изучать РНР и пытаюсь ставить себе какие-то задачи, вот решил написать простой конвектор но столкнулся с вопросом как вернуть данные в туже самую html форму с которой получил значения.

    1. Pashaster Автор

      Приветствую :-)

      В вашем случае поможет Javascript и AJAX запрос. С его помощью будете отправлять данные на сервер при подтверждении формы (нажатие на кнопку с типом submit) из JavaScript кода, а когда сервер вернёт ответ, вставите результаты обратно в форму.

      Примеры кода для отправки AJAX запроса на чистом JavaScript (без всякого jQuery, хотя с ним и проще) можете найти в комментариях к этой статье выше.

      PS: В следующий раз делайте поменьше ошибок в комментариях — устал исправлять :-)

  12. Александр

    «Со скрипом» установил PHP5.3.13.
    Firefox в «интсрументах разработки» пишет:
    элемент не найден script.php:1:1
    SyntaxError: JSON.parse: unexpected end of data at line 1 column 1 of the JSON data
    javascript.js:8:14
    Chrome пишет тоже самое.
    Непонятно, что такого не находит PHP5.3.13 из того, что есть, как вы писали, в PHP7.1?

    1. Pashaster Автор

      У Вас проблема не с версией PHP, а с путём к файлу script.php. Пропишите его правильно. Если сложно написать правильно относительный url, воспользуйтесь для начала абсолютным, а потом подберите относительный вариант.

      1. Александр

        Проблема все-таки в Small HTTP server-е. Он работает только с PHP4.4 максимум.
        Немного разобрался с OpenServer Premium 5.2.7. Ваш пример прекрасно заработал. Спасибо за помощь. Осталось разобраться с базами.:)

        1. Pashaster Автор

          Пожалуйста :-) Рад был помочь :-)

          Принимаю «благодарности» через форму под статьёй, которые пойдут на развитие проекта.

  13. Александр

    Сказать, что с деньгами сейчас плохо — сильно приукрасить действительность.
    В качестве компенсации предлагаю материал для статьи.

    Файл javascript.js

    setInterval(function(){
        var xhr = new XMLHttpRequest();
        xhr.open('POST', 'script.php', false);
        xhr.send();
        if (xhr.status != 200) {
        alert('Got the error ' + xhr.status + ': ' + xhr.statusText);
        } else {
        var result = JSON.parse(xhr.responseText);
             
        var a = result[0];
        var b = result[1];
        var с = result[2];
                  
        document.getElementById('wb_Text1').textContent = a;
        document.getElementById('Text2').textContent = b;
        document.getElementById('wb_Text3').textContent = с;    
        }       
    }, 10*1000);
    

    В HTML файле тремя способами записаны текстовые поля. Из него вызывается файл javascript.js, который вызывает серверный скрипт: script.php, который, в свою очередь, запускает генераторы случайных чисел………….
    Из примера видно, что переменные из PHP-скрипта, полученные……JavaScript-ом выводятся по-разному.
    Мне, как начинающему, пришлось помучиться, чтобы с посторонней помощью дойти до этого. Думаю, начинающим будет полезно.

  14. Александр

    Да. «Мир не без добрых людей».
    К сожалению, нет ни одной книги, где бы последовательно рассказывалось о чём-либо. Приходится много «копать».
    Не понятно, почему не отобразились тексты HTML и PHP файлы. Почта отказывается пересылать архивы. Это что-то новое.

    1. Pashaster Автор

      Чтобы HTML и PHP код вставить в комментарии — заключите их в шорткоды [ code ][ /code ]. Только пробелы уберите от названия до скобок.

  15. Александр

    Опять не отобразилось.
    Вспомнил про резервную почту. Кажется, вложение отправилось.

  16. Максим

    Текст из div в переменную php, как сделать?

    <?php
    $CFT = '';
    ?>
    <input type='text'; name='in_CFT' value="">
    Тут динамический текст
    
    1. Pashaster Автор

      Честно говоря, не понял сути вопроса. Напишите подробнее, что вы хотите сделать?

  17. DianaLex

    Приветик! Оговорюсь сразу, может я, опубликовала тему не совсем не по теме сайта, но тем неменее, разбирающиеся пользователи должны быть.
    На днях был спор с близкой подругой, что смогу сделать ресурс и за полгода я смогу вывести его в топ 10 поисковиков и получать трафик не ниже 500 уникальных посетителей. Но, проблема в том, что я не понимаю в этом деле, а спор проигрывать нельзя. Отсюда к вам просьба, для тех, кто понимает, сколько может стоить такой сайт под ключ, который выше.
    А главное, за какую цену вы могли взяться и сделать такой сайт? Много денег у меня к сожалению нет, но, какую-то сумму за работу заплатить смогу.
    Если вы можете взяться за это дело, напишите в ЛС, оповещения читаю
    Если я вам не ответила, то, цена меня не устраивает.
    Модераторы, если не в тот раздел написала, перенесите по тематике или в раздел свободного общения, заранее спасибо.

    1. Pashaster Автор

      День добрый :-) По поводу разработки сайта — пишите на email cccpblogcom@gmail.com

      По поводу 500 уников в сутки — для этого Вам потребуется SEO-специалист и солидный бюджет, т.к. для данной посещаемости есть конкретные сроки. А дальше всё будет зависеть от умений SEO-шника и удачи, что поисковики поставят Ваш сайт в топ.

      Можете и сами всё сделать, в принципе, если с бюджетом беда: выберите низкоконкурентную тематику, составьте семантическое ядро, наполните сайт контентом, закупите ссылок на авторитетных ресурсах и рекламная компания через контекстку не помешает.

      Если вы, конечно, не испугаетесь :-)

Добавить комментарий для Андрей Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *