Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2023, 23:35   #11
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

index.htm
Код HTML:
<html lang="ru">
<head>
    <title>Форма</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <script*type="text/javascript"*src="query.php"></script>
</head>
<body onload="getQueryValues();">

<form id="data" method="post">
    <input id="inpa" type="text" name="inpa" value="" placeholder="0">
    <input id="inpb" type="text" name="inpb" value="" placeholder="0">
    <button form="data">Рассчитать</button>
</form>
    <div id="answer"></div>

</body>
</html>
query.php
Код:
<?php
$answer = '';
if (!empty($_POST['inpa']) && !empty($_POST['inpb'])) {
    $inpa = (int)$_POST['inpa'];
    $inpb = (int)$_POST['inpb'];
    $answer = $inpa + $inpb;
}
?>

function getQueryValues() {
  const inputA = document.getElementById("inpa");
  const inputB = document.getElementById("inpb");
  const answer = document.getElementById("answer");
  if (inputA) inputA.value = "<?= $inpa ?? '' ?>";
  if (inputB) inputB.value = "<?= $inpb ?? '' ?>";
  if (answer) answer.textContent = "<?php empty($answer) ? '' : 'Ответ :' . $answer ?>";
}
Можно сразу в текст JS подставлять или написать файл с объектом, содержащим значения. Тогда функцию на js, которая их расставит по местам, надо включить в другой js файл.

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

P. S. Проще HTML разработчика научить PHP чем все это делить.

Последний раз редактировалось macomics; 03.03.2023 в 23:40.
macomics вне форума Ответить с цитированием
Старый 04.03.2023, 13:11   #12
gimes
Пользователь
 
Регистрация: 17.01.2022
Сообщений: 58
По умолчанию

Цитата:
Сообщение от macomics Посмотреть сообщение
Проще HTML разработчика научить PHP чем все это делить
А не поможет ли использование шаблонизатора? И если да, то какой учить в 2023 году?
gimes вне форума Ответить с цитированием
Старый 04.03.2023, 15:16   #13
Valick
Форумчанин
 
Регистрация: 27.04.2022
Сообщений: 484
По умолчанию

gimes, вы пытаетесь объять необъятное, впихнуть невпихуемое и запрячь сани в кобылу.
Вам кажется, что вы задаёте нормальные вопросы, но на самом деле в них напрочь отсутвует логика и здравый смысл. Оставаясь и дальше на том уровне на котором находитесь сейчас, вы искренне не будете понимать, что же "не так" с окружающими вас людьми.
Честно говоря написал сообщение и сижу думаю отправлять или стереть.
Всё-таки вера в прекрасное, доброе и светлое, вера в людей заставляет меня отправить это сообщение.
Valick вне форума Ответить с цитированием
Старый 04.03.2023, 16:14   #14
gimes
Пользователь
 
Регистрация: 17.01.2022
Сообщений: 58
По умолчанию

Основы PHP осваивал некоторое время назад. Так как изучал потом другой язык, со временем PHP подзабыл. Однако в связи с тем, что помогли с этими примерами кода, собираюсь повтороить, чтобы понять, что в них. Насчет шаблонизатора не понял, какая ситуация.
gimes вне форума Ответить с цитированием
Старый 04.03.2023, 16:55   #15
gimes
Пользователь
 
Регистрация: 17.01.2022
Сообщений: 58
По умолчанию

https://eqsash.com/articles/razdelen...anie-shablonov
Почему необходимо отделять HTML от PHP? Причин может быть несколько:

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

Для примера создадим файл с расширением tpl, в котором будет храниться HTML код. Это и будет наш шаблон, расширение файла можно сделать любое, tpl здесь просто для примера. Соответственно в редакторе кода можно задать подсветку синтаксиса HTML для этого расширения (к примеру в Notepad++). В этом файле прописываются нужные переменные, которые необходимо будет заменить на нужные данные. Пример шаблона:
gimes вне форума Ответить с цитированием
Старый 04.03.2023, 17:06   #16
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

index.tpl
Код HTML:
<html lang="ru">
<head>
    <title>Форма</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>

<form id="data" method="post">
    <input id="inpa" type="text" name="inpa" value="<template name='inpa' />" placeholder="0">
    <input id="inpb" type="text" name="inpb" value="<template name='inpb' />" placeholder="0">
    <button form="data">Рассчитать</button>
</form>
    <div id="answer"><template name="answer" /></div>

</body>
</html>
index.php
Код:
<?php
  $answer = '';
  if (!empty($_POST['inpa']) && !empty($_POST['inpb'])) {
      $inpa = (int)$_POST['inpa'];
      $inpb = (int)$_POST['inpb'];
      $answer = $inpa + $inpb;
  }
  print(str_replace(["<template name='inpa' />", "<template name='inpb' />", "<template name='answer' />"], [$inpa, $inpb, $answer], file_get_contents('ваш_tpl_файл.tpl')));
>
Нет ничего проще. Просто замените шаблон на значения переменных, предварительно считав этот tpl файл в строку.
macomics вне форума Ответить с цитированием
Старый 04.03.2023, 17:06   #17
Valick
Форумчанин
 
Регистрация: 27.04.2022
Сообщений: 484
По умолчанию

Изучать надо последовательно от меньшего к большему. С самого начала, а не с конца.
Цитата:
Сообщение от gimes Посмотреть сообщение
Насчет шаблонизатора не понял, какая ситуация.
С шаблонизаторами всё отлично, просто вам до шаблонизаторов ещё очень далеко.
Valick вне форума Ответить с цитированием
Старый 04.03.2023, 17:46   #18
gimes
Пользователь
 
Регистрация: 17.01.2022
Сообщений: 58
По умолчанию

Цитата:
Просто замените шаблон на значения переменных, предварительно считав этот tpl файл в строку
Благодарю. А на данный момент то, что считывает этот tpl файл в строку, уже есть в коде или надо будет писать отдельный код?
gimes вне форума Ответить с цитированием
Старый 04.03.2023, 17:54   #19
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

file_get_contents('ваш_tpl_файл.tpl')
macomics вне форума Ответить с цитированием
Старый 06.03.2023, 04:51   #20
gimes
Пользователь
 
Регистрация: 17.01.2022
Сообщений: 58
По умолчанию

Благодарю. А куда именно в коде вписывать эту строку?
gimes вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Форма С++ Maray Windows Forms 6 07.12.2015 21:44
форма max007777 БД в Delphi 0 29.05.2013 14:52
ПЕрвая форма, кликая по кнопке, другая форма Nadej C++ Builder 0 02.10.2011 17:58
форма Милана666 Общие вопросы Delphi 2 03.06.2010 20:34
Форма Killbrum Помощь студентам 8 21.08.2008 18:48