Yii Framework
из js в php вы никак не передадите, js исполняется на стороне клиента, а php на стороне сервера.
можете использовать что то наподобие phpQuery и с помощью этой библиотеки получить нужно вам значение!
hollanditkzn Сообщения: 95 Зарегистрирован: 2017.03.28, 17:37
Re: Как передать переменную js в php?
vitalik1183 писал(а): ↑ 2017.06.09, 11:41 из js в php вы никак не передадите, js исполняется на стороне клиента, а php на стороне сервера.
можете использовать что то наподобие phpQuery и с помощью этой библиотеки получить нужно вам значение!
Или можно так прописать путь
registerJs('$("body").on("click", "#edit", function() < var key = $(this).data("key"); console.log(key); $.ajax(< url: "http://crm/frontend/web/zakaz/zakazedit?id="+key, success: function(html)< $(".view-zakaz").html(html); >>) >);') ?>
dmg Сообщения: 685 Зарегистрирован: 2012.10.15, 03:09
Re: Как передать переменную js в php?
Сообщение dmg » 2017.06.09, 12:01
url: "'.Url::toRoute(['zakaz/zakazedit']).'?id=+key",
или, чтоб не портить ЧУРЛ
url: "'.Url::toRoute(['zakaz/zakazedit']).'", type: "POST", data: ,
hollanditkzn Сообщения: 95 Зарегистрирован: 2017.03.28, 17:37
Re: Как передать переменную js в php?
url: "'.Url::toRoute(['zakaz/zakazedit']).'", type: "POST", data: ,
Вот так не получилось, а вот так получилось
url: «‘.Url::toRoute([‘zakaz/zakazedit’]).’?id back2top»> Вернуться к началу
5 сообщений • Страница 1 из 1
- Yii Framework 3.x
- ↳ Вопросы
- ↳ Разработка фреймворка
- Yii Framework 2.x
- ↳ Общие вопросы (Yii 2.x)
- ↳ RBAC и контроль доступа (Yii 2.x)
- ↳ Баг-репорты и предложения (Yii 2.x)
- ↳ Архив
- ↳ Документация и рецепты (Yii 2.x)
- ↳ REST API (Yii 2.x)
- ↳ Тестирование (Yii 2.x)
- Yii Framework 1.x
- ↳ Общие вопросы (Yii 1.x)
- ↳ Баг-репорты и предложения (Yii 1.x)
- ↳ Архив
- ↳ Документация и рецепты (Yii 1.x)
- Вопросы
- ↳ Общие вопросы по программированию
- ↳ Вёрстка и JavaScript
- ↳ Установка и настройка
- ↳ Завершённые проекты на Yii
- ↳ Авторский код и библиотеки
- ↳ Готовые базы данных
- ↳ Архитектура, дизайн, ООП
- ↳ DevOps
- Новости, события, встречи
- Работа
- ↳ Ищу работу
- ↳ Предлагаю работу
- yiiframework.ru
- ↳ Архив
- Обо всем
- Ни о чем
- Список форумов
- Часовой пояс: UTC+03:00
- Удалить cookies
Создано на основе phpBB® Forum Software © phpBB Limited
Как передать значение переменной из javascript в php
Когда происходит отправка данных формы PHP-скрипту, информация из этой формы автоматически становится доступной ему. Существует несколько способов получения этой информации, например:
Пример #1 Простая HTML-форма
Есть только два способа получить доступ к данным из форм HTML. Доступные сейчас способы приведены ниже:
Пример #2 Доступ к данным из простой HTML-формы, отправленной через POST
echo $_POST [ ‘username’ ];
echo $_REQUEST [ ‘username’ ];
?>?php
GET-форма используется аналогично, за исключением того, что вместо POST, вам нужно будет использовать соответствующую предопределённую переменную GET. GET относится также к QUERY_STRING (информация в URL после ‘?’). Так, например, http://www.example.com/test.php?id=3 содержит GET-данные, доступные как $_GET[‘id’] . Смотрите также $_REQUEST .
Замечание:
Точки и пробелы в именах переменных преобразуется в знаки подчёркивания. Например, станет $_REQUEST[«a_b»] .
PHP также понимает массивы в контексте переменных формы (смотрите соответствующие ЧАВО). К примеру, вы можете сгруппировать связанные переменные вместе или использовать эту возможность для получения значений списка множественного выбора select. Например, давайте отправим форму самой себе, а после отправки отобразим данные:
Пример #3 Более сложные переменные формы
if ( $_POST ) echo ‘
' ;
echo htmlspecialchars ( print_r ( $_POST , true ));
echo '
‘ ;
>
?>
?php
Замечание: Если внешнее имя переменной начинается с корректного синтаксиса массива, завершающие символы молча игнорируются. Например, станет $_REQUEST[‘foo’][‘bar’] .
Имена переменных кнопки-изображения
При отправке формы вместо стандартной кнопки можно использовать изображение с помощью тега такого вида:
Когда пользователь щёлкнет где-нибудь на изображении, соответствующая форма будет передана на сервер с двумя дополнительными переменными — sub_x и sub_y . Они содержат координаты нажатия пользователя на изображение. Опытные программисты могут заметить, что на самом деле имена переменных, отправленных браузером, содержат точку, а не подчёркивание, но PHP автоматически преобразует точку в подчёркивание.
HTTP Cookies
PHP прозрачно поддерживает HTTP cookies как определено в » RFC 6265. Cookies — это механизм для хранения данных в удалённом браузере и, таким образом, отслеживания и идентификации вернувшихся пользователей. Вы можете установить cookies, используя функцию setcookie() . Cookies являются частью HTTP-заголовка, поэтому функция SetCookie должна вызываться до того, как браузеру будет отправлен какой бы то ни было вывод. Это то же ограничение, что и для функции header() . Данные, хранящиеся в cookie, доступны в соответствующих массивах данных cookie, таких как $_COOKIE и $_REQUEST . Подробности и примеры смотрите в справочной странице setcookie() .
Замечание: Начиная с PHP 7.2.34, 7.3.23 и 7.4.11, соответственно, имена входящих cookie больше не декодируются из URL-закодированной строки из соображений безопасности.
Если вы хотите присвоить множество значений одной переменной cookie, вы можете присвоить их как массив. Например:
setcookie ( «MyCookie[foo]» , ‘Testing 1’ , time ()+ 3600 );
setcookie ( «MyCookie[bar]» , ‘Testing 2’ , time ()+ 3600 );
?>?php
Это создаст две разные cookie, хотя в вашем скрипте MyCookie будет теперь одним массивом. Если вы хотите установить именно одну cookie со множеством значений, сначала рассмотрите возможность использования к значениям такие функции, как serialize() или explode() .
Обратите внимание, что cookie заменит предыдущую cookie с тем же именем в вашем браузере, если только путь или домен не отличаются. Так, для приложения корзины покупок вы, возможно, захотите сохранить счётчик. То есть:
Пример #4 Пример использования setcookie()
if (isset( $_COOKIE [ ‘count’ ])) $count = $_COOKIE [ ‘count’ ] + 1 ;
> else $count = 1 ;
>
setcookie ( ‘count’ , $count , time ()+ 3600 );
setcookie ( «Cart[ $count ]» , $item , time ()+ 3600 );
?>?php
Точки в именах приходящих переменных
Как правило, PHP не меняет передаваемых скрипту имён переменных. Однако следует отметить, что точка не является корректным символом в имени переменной PHP. Поэтому рассмотрим такую запись:
$varname . ext ; /* неверное имя переменной */
?>?php
В данном случае интерпретатор видит переменную $varname , после которой идёт оператор конкатенации, а затем голая строка (то есть, не заключённая в кавычки строка, не соответствующая ни одному из ключевых или зарезервированных слов) ‘ext’. Очевидно, что это не даст ожидаемого результата.
По этой причине важно отметить, что PHP будет автоматически заменять любые точки в именах, приходящих переменных на символы подчёркивания.
Определение типов переменных
Поскольку PHP определяет типы переменных и преобразует их (как правило) по мере необходимости, не всегда очевидно, какой тип имеет данная переменная в любой момент времени. PHP содержит несколько функций, позволяющих определить тип переменной, таких как: gettype() , is_array() , is_float() , is_int() , is_object() и is_string() . Смотрите также раздел Типы.
HTTP является текстовым протоколом, и большинство, если не всё, содержимое, которое приходит в суперглобальные массивы, например, $_POST и $_GET , останется в виде строк. PHP не будет преобразовывать значения в определённый тип. В приведённом ниже примере $_GET[«var1»] будет содержать строку «null», а $_GET[«var2»] — строку «123».
/index.php?var1=null&var2=123
Список изменений
| Версия | Описание |
|---|---|
| 7.2.34, 7.3.23, 7.4.11 | имена входящих cookie больше не декодируются из URL-закодированной строки из соображений безопасности. |
User Contributed Notes 30 notes
15 years ago
The full list of field-name characters that PHP converts to _ (underscore) is the following (not just dot):
chr(32) ( ) (space)
chr(46) (.) (dot)
chr(91) ([) (open square bracket)
chr(128) — chr(159) (various)
PHP irreversibly modifies field names containing these characters in an attempt to maintain compatibility with the deprecated register_globals feature.
22 years ago
Important: Pay attention to the following security concerns when handling user submitted data :
18 years ago
This post is with regards to handling forms that have more than one submit button.
Suppose we have an HTML form with a submit button specified like this:
Normally the ‘value’ attribute of the HTML ‘input’ tag (in this case «Delete») that creates the submit button can be accessed in PHP after post like this:
$_POST [ ‘action_button’ ];
?>
We of course use the ‘name’ of the button as an index into the $_POST array.
This works fine, except when we want to pass more information with the click of this particular button.
Imagine a scenario where you’re dealing with user management in some administrative interface. You are presented with a list of user names queried from a database and wish to add a «Delete» and «Modify» button next to each of the names in the list. Naturally the ‘value’ of our buttons in the HTML form that we want to display will be «Delete» and «Modify» since that’s what we want to appear on the buttons’ faceplates.
Both buttons (Modify and Delete) will be named «action_button» since that’s what we want to index the $_POST array with. In other words, the ‘name’ of the buttons along cannot carry any uniquely identifying information if we want to process them systematically after submit. Since these buttons will exist for every user in the list, we need some further way to distinguish them, so that we know for which user one of the buttons has been pressed.
Using arrays is the way to go. Assuming that we know the unique numerical identifier of each user, such as their primary key from the database, and we DON’T wish to protect that number from the public, we can make the ‘action_button’ into an array and use the user’s unique numerical identifier as a key in this array.
Our HTML code to display the buttons will become:
The 0000000002 is of course the unique numerical identifier for this particular user.
Then when we handle this form in PHP we need to do the following to extract both the ‘value’ of the button («Delete» or «Modify») and the unique numerical identifier of the user we wish to affect (0000000002 in this case). The following will print either «Modify» or «Delete», as well as the unique number of the user:
$submitted_array = array_keys ( $_POST [ ‘action_button’ ]);
echo ( $_POST [ ‘action_button’ ][ $submitted_array [ 0 ]] . » » . $submitted_array [ 0 ]);
?>
$submitted_array[0] carries the 0000000002.
When we index that into the $_POST[‘action_button’], like we did above, we will extract the string that was used as ‘value’ in the HTML code ‘input’ tag that created this button.
If we wish to protect the unique numerical identifier, we must use some other uniquely identifying attribute of each user. Possibly that attribute should be encrypted when output into the form for greater security.
Как передать переменную PHP в HTML и обратно?
Всем привет!
Сегодня я решил затронуть тему передачи переменных между бэкэндом и фронтэндом, с которой сталкиваются абсолютно все начинающие разработчики. В частности, сегодня мы рассмотрим примеры передачи переменных из PHP в HTML и обратно, а также их вызова в обоих случаях.
Идея этой статьи у меня появилась после поиска мною соответствующего материала в сети, после которого ничего путного найти не удалось.
Дело в том, что сегодня люди начинают своё знакомство с веб-программированием изучая разнообразные платформы: CMS, фрэймворки и т.д., в которых механизм передачи переменных реализован своим уникальным образом.
Где-то переменные бэкэнда записываются в глобальный массив, а в html-шаблонах вызываются оттуда. В других случаях используются шаблонизаторы, типа Smarty, со своими механизмами передачи данных. В данной ситуации всё зависит от фантазии разработчика.
Таким образом, перед людьми, начавшими своё знакомство с языками написания сайтов благодаря готовым движкам, иcчезла необходимость изучения механизмов передачи данных для «чистых» PHP и HTML.
Но всё же, иногда такая необходимость появляется, причём не только у начинающих, но и у опытных юзеров.
Кому может быть полезно понимание механизма передачи данных из PHP в HTML и обратно?
Представьте, что вы захотели написать собственный движок Тем более, что рано или поздно, в учебных целях или коммерческих за такую работу принимается больше половины программистов Земного шара.
А до этого вы работали только с готовым продуктом, в котором свой механизм передачи данных, т.е. необходимости вникать в тонкости «стандартной» передачи у вас не было.
Или, к примеру, вас не устраивает используемый в вашем проекте шаблонизатор (программная надстройка, позволяющая минимизировать содержание бизнес-логики в графических шаблонах, т.е. убирать из html php-конструкции, ограничиваясь только вызовом переменных, функций и файлов), и вы решили написать собственный.
Или же совсем жизненный пример — вы ищете работу, а в предлагаемом тестовом задании без использования в html php-данных никуда. Причём, тестовое нужно сделать на «чистых» языках, а не с использованием горячо любимых вами и используемых фреймворков.
Ну, про новичков, которые только начинают работать с PHP и HTML, о ценности рассматриваемого сегодня вопроса я вообще умолчу.

В результате вы идёте в Интернет — и вместо конкретного ответа на вопрос вы находите только обсуждения на форумах, где ничего толкового нет.
Но ничего — сегодня мы исправим эту ситуацию
Как передать переменные PHP в HTML?
Для примера создадим простенький тестовый скрипт index.php:
Как видите, в нём всего 2 строчки: в первой объявляется переменная $hello со значением «Привет, мир!», а во второй мы подключаем наш html-шаблон, в котором будет выводить нашу переменную следующим образом:
Переменная из php:
Здесь, как видите, тоже всё очень незамысловато: для вызова необходимой конструкции её нужно заключить между скобками (при соответствующих настройках сервера возможен сокращённый вариант записи ) и вывести с помощью оператора echo.
В результате, при запуске скрипта в вашем веб-браузере вы увидите следующий результат:

Надеюсь, вы не забыли скопировать скрипт и html-файл в каталог, соответствующий новому сайту, на локальный веб-сервер и запустить сервер? Если желаемая надпись в браузере не появилась — проверьте порядок выполняемых действий ещё раз.
Как передать массив PHP в HTML?
Передачу простых переменных мы рассмотрели. А как насчёт массивов, можете спросить вы? Действительно, передача массивов также весьма востребована в случаях, когда необходимо в HTML вывести списки объектов из PHP.
В качестве примера, видоизменим наш PHP-скрипт, сделав из переменной $hello массив:
В данном случае описанный нами способ вызова переменной PHP в HTML выдаст следующий результат:


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

Приведённый выше html-код вы можете найти на странице категории абсолютно любого Интернет-магазина, т.к. отображаемые там товары — это содержимое передаваемого PHP-массива.
Ещё один факт, на который следует обратить внимание в предыдущем примере — это возможность использования PHP-операторов и конструкций в HTML (в данном случае используется функция перебора массива foreach), которые также необходимо прописывать между открывающим и закрывающим тэгами .
Т.е., подводя краткое резюме под написанным ранее, для передачи переменной из PHP в HTML, HTML-документ должен быть подключён в PHP с помощью директив include или require, после чего объявленные в скрипте переменные будут доступны в шаблоне.
Как вы могли заметить, язык PHP прекрасно взаимодействует с HTML — это его базовая фича, которая у него «в крови», т.е. реализуется без каких-либо дополнительных манипуляций
Следующим этапом мы рассмотрим обратную сторону данного взаимодействия двух языков — а именно, передачу данных из HTML в PHP.
Передача данных из HTML в PHP
Для данного действия нам потребуется разместить данные в HTML внутри формы, т.е. внутри открывающего и закрывающего тэгов . Для этого используем другой тестовый пример, файл index.html которого будет выглядеть так:
Имя: Пароль:
Как вы могли догадаться, он представляет из себя примитивную форму авторизации пользователя на сайте, в которой пользователь будет вводить логин и пароль и нажимать на кнопку «ОК» для отправки данных на сервер.
Немного комментариев по поводу передачи в PHP данных HTML-форм (если вдруг кто не в курсе). HTML-формы, как уже было сказано, представляют из себя пару тэгов , между которыми располагаются элементы формы, представляющие собой тэги (закрывающий тэг не требуется) со следующими атрибутами:
- name — будет использоваться как идентификатор элемента для получаения его значений в PHP;
- type — тип элемента. В зависимости от вводимых в элемент данных может быть «text», «password», «button» и т.д.
- value — значение элемента по умолчанию (текст в поле до ввода данных, надпись на кнопке и т.д.).
Конечно, это далеко не полный список атрибутов. Я привёл только самые необходимые. Если хотите, чтобы я рассказал обо всех возможных — отпишитесь в комментариях. Жду ваших ответов
Тэги также могут быть заменены и дополнены специализированными тэгами , и т.д., у которых будут присутствовать те же атрибуты, что и у .
Обязательным для каждой формы является наличие элемента с типом «submit», который представляет собой кнопку для отправки данных HTML-формы с помощью HTTP-запроса к серверу, на котором расположены скрипты PHP, обрабатывающие его.
Благодаря возможностям JavaScript и его библиотек элемента с типом «submit» может и не быть — имейте это ввиду при внесении правок в код своего сайта.
У отправляемого HTML-формой HTTP-запроса также есть несколько параметров, которые задаются в качестве атрибутов тэга :
- method — содержит одно из двух значений GET/POST, основным различием между которыми является метод передачи данных. При передаче методом GET они будут добавляться в url сайта в виде «http://siteurl.com/index.php?login=UserName&password=qwerty», что, соответственно, небезопасно. А при POST данные будут скрыты, поэтому в данном примере он и применяется. К тому же методом POST можно передать данные бОльшего размера, чем GET;
- action — будет содержать адрес скрипта, который будет обрабатывать оправленные формой данные. По умолчанию данные передаются в тот же скрипт, через который был вызван HTML-шаблон. В моём примере данный вариант меня вполне устраивает, поэтому я не указывал значение для данного атрибута;
Напомню, что структура данного тестового сайта такая же: каталог с HTML-документом, содержащим интерфейс для взаимодействия пользователя с сайтом и PHP-скрипт, который его вызывает. Последний будет иметь следующий вид:
'; print_r($_POST); die(); > require_once('index.html'); ?>
Как видите, данные, отправляемые HTML-формой, будут содержаться в массиве POST, который доступен в PHP в виде конструкции $_POST. В нашем случае, после нажатия на кнопку «ОК» в HTML-форме, скрипт выведет на экран следующее:

Как видите, в случае удачного HTTP-запроса массив POST будет содержать введённые в форме данные в формате «значение атрибута name элемента формы» => «введённое в элемент значение».
Далее в PHP можете обрабатывать данные так как вам захочется
К слову, данные переданные из HTML-формы в PHP, могут быть доступны в массиве, соответствующему названию метода, с помощью которого они передавались. Если данные передавались методом POST, то искать их нужно в массиве $_POST, если GET — то, соответственно, в $_GET.
Данные, переданные любым из указанных способов также могут быть доступны через массив $_REQUEST, который помимо помимо содержимого массивов $_GET и $_POST также может содержать данные суперглобального массива $_COOKIE, который содержит данные, сохранённые в cookie-файлах (известные в Рунете куки) вашего браузера.
Также, до версии PHP 4.3, в данном массиве содержались ещё и данные о передаваемых через HTML-форму файлах из массива $_FILES, но они были выделены в отдельный массив.
Таким образом, сегодня мы рассмотрели механизм взаимодействия путём передачи данных между HTML и PHP, бэкэндом и фронтэндом ваших сайтов.
Надеюсь, что информация была для вас полезной Жду ваши отзывы в комментариях под статьёй и подписки на обновления сайта, чтобы вы были в курсе новых статей.
Также, пользуясь случае, хочу всех вас пригласить в паблик нашего проекта Вконтакте для обсуждения волнующих вас вопросов. Также здесь вы всегда найдёте массу увлекательных статей, конкурсов и весёлой информации, которая сделает вас на шаг ближе к сайту своей мечты.
P.S.: если вам нужен сайт либо необходимо внести правки на существующий, но для этого нет времени и желания, могу предложить свои услуги.
Более 5 лет опыта профессиональной разработки сайтов. Работа с PHP, OpenCart, WordPress, Laravel, Yii, MySQL, PostgreSQL, JavaScript, React, Angular и другими технологиями web-разработки.
Опыт разработки проектов различного уровня: лендинги, корпоративные сайты, Интернет-магазины, CRM, порталы. В том числе поддержка и разработка HighLoad проектов. Присылайте ваши заявки на email cccpblogcom@gmail.com.
И с друзьями не забудьте поделиться
Понравилась статья? Поделись с друзьями:
‘ . __( ‘Pages:’, ‘themonic’ ), ‘after’ => ‘
- 5
- 4
- 3
- 2
- 1

Делаем слайдер на JavaScript свои.

Чтение файла в PHP. Выбираем опти.

Выделение активного пункта меню с.

Как получить IP через PHP для сер.
56 комментариев к статье «Как передать переменную PHP в HTML и обратно?»
-
Владимир 16.08.2017 Огромное спасибо за информацию!
Только начинаю разбираться с PHP.
У меня сайт на чистом html с использованием ssi.
И я задумал сделать для него микроразметку для рейтинга google и поисковых сайтов.
Как раз понадобилось чтение базы данных. Попробовал подключить сайт через index.php
Данные появились
Но:
— перестал работать ssi
— кодировка страницы изменилась Если с кодировкой наверное найду способ разобраться, то с ssi — пока не знаю что делать.
- Pashaster Автор 16.08.2017 Здравствуйте! У меня к Вам два вопроса: 1. Что такое ssi?
2. Попробовал подключить сайт через index.php — то Вы конкретно делали? Опишите весь порядок действий, пожалуйста.
- Pashaster Автор 17.08.2017 Проблемы поисковиков с JS-кодом наблюдались всегда) Поскольку JS выполняется динамически, а робот поисковой системы сканирует лишь HTML-код страницы, то вполне возможно, что JS-переменная не будет восприниматься. 1. Укажите, что за переменная и попробуйте её сами найти в коде страницы в браузере — Ctrl+U.
2. Попробуйте изменить алгоритм вывода значений рейтинга
- Pashaster Автор 27.11.2017 Добрый день! В вашем случае вам понадобится технология AJAX, с помощью которой вы будете без перезагрузки страницы отправлять запросы из JS кода в PHP скрипт и обрабатывать ответ от него. Конкретно в вашем случае нужно будет создать html документ с формой и полями, в котором будет подключаться js файл, например, так:
В 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 файлом. В нём-то у вас и будет производиться выборка данных из БД. Сам скрипт будет выглядеть примерно следующим образом:
Я сделал запись в переменные случайных значений. У вас же вместо них будет информация из базы данных сайта. Надеюсь, что я доступно объяснил Если будут вопросы — обращайтесь.
$result = [$var1, $var2]; echo json_encode($result);
Как я понимаю, в первой строке должно производиться присвоение переменной $result строки, а что делает вторая, не понимаю. По идее, формат json_encode должен что-то преобразовать во что-то, понятное браузеру.
- Pashaster Автор 28.11.2017 Первая строка — это запись массива из переменных $var1, $var2 в переменную $result. Последняя — вывод на экран массива, представленного в JSON формате (для корректной передачи и обработке в JavaScript). Как именно вы поняли, что строки не работают?
echo ($var1); echo ($var2);
получаю два числа вверху окна без занесения в поля.
Саму идею увидел на страничке:
http://www.coolwebmasters.com/codes-and-scripts/2545-pushing-updates-to-the-web-page-with-html5-server-sent-events.html В моём случае кнопка отправки данных на сервер не нужна. Нужны просто поля, в которые сервер будете пересылать данные.
Как видите, мне очень сложно понять даже простые вещи.
- Pashaster Автор 28.11.2017 Не переживайте вы так сильно Ничего страшного же не произошло Ошибка PHP связана, скорее всего, с тем, что вы используете невероятно устаревшую версию PHP на вашем веб-сервере: php version 3.0. Не знаю, по каким мануалам вы устанавливали и настраивали локальный веб-сервер, но сейчас актуальная рабочая версия PHP 7.1, поэтому некоторые синтаксические конструкции и вызывают ошибки в вашем случае. Я лично рекомендую использовать для локальной разработки OpenServer, если вы работаете под Windows, т.к. сам им пользуюсь и не нарадуюсь И да, script2.php не нужно было менять на script.php, т.к. таким образом я хотел как раз сделать акцент, что для обработки запроса, отправленного с помощью формы, нужен другой скрипт, отличный от того, что получает данные из БД в вашем случае и генерирует случайные числа в моём. По поводу чисел, которые у вас поверх полей отображаются — тут, скорее всего, виноват браузер или кэш браузера. Воспользуйтесь современными версиями Firefox или Chrome и очистите у них кэш предварительно.
- Александр 28.11.2017 Скачал версию PHP 7.1.10. Почитал об установке. Что-то сложно. Старую версию просто распаковал в директорию «php» сервера и прописал путь к папке в настройках сервера.
Поищу более подробное описание по установке PHP и попробую запустить.
Small http server выбрал из-за простоты настроек. Мне нужно организовать работу в локальной сети предприятия. Этот наносайт из одной страницы нужен, максимум, для четырёх потребителей, чтобы они не звонили по телефону, а смотрели в браузере. Мне предлагали сделать программки 5-ти минутного удалённого опроса БД, находящейся на моём компьютере на VB и установить у потребителей. Но у двух оказались «Дебиан» и «федора». Вот и пытаюсь что-то простенькое сделать. И, судя по реакции руководства, это надо только мне, чтобы не дёргали звонками.
При отправке со станички, текстовые поля исчезают вместе с кнопкой. Чтобы написать ещё один скрипт, поищу как работать с БД на PHP. К сожалению, в книгах описывают только два случая: базу сотрудников и интернет магазин.
Не могли бы вы посоветовать, что почитать, применительно к моему случаю?
Да и вообще, если вам просто нужно будет мониторить данные без их изменения, то сверстайте простую страничку с текстовыми блоками без форм, как в моём примере. Тогда никто никого не будет сбивать с толку. Если сайт будет крутиться в локальной сети — установите себе на ПК 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, вышлю исходники. Только не злоупотребляйте моей добротой, попробуйте сначала сами
- Pashaster Автор 28.11.2017 Это да В этом деле главное не торопиться, а то можно таких дров наломать, что потом неделю разбираться можно в причине…
- Pashaster Автор 30.11.2017 Эм… кто вам сказал о таких ограничениях?… И если вы до сих пор пытаетесь использовать чистый PHP, то зря. Поставьте уже OpenServer или, если не нравится, XAMPP. Готовую WAMP сборку, одним словом. У меня у самого старый комп больше Windows XP не тянул, так благодаря OpenServer спокойно себе работал с PHP 7. А с динозаврами (я про старые версии) даже и не думайте связываться — неблагодарное дело
- Pashaster Автор 01.12.2017 Да, напутал я что-то с версиями… Можно, конечно, поставить виртуалку с Windows 7+ и OpenServer с последней версией PHP или же вообще остановиться на установке чистых компонентов (PHP, MySQL, Apache)… Но слишком много мороки… По поводу запуска сайта в Вашем случае, он должен был открыться по адресу http://test/Index.html Если снова будут проблемы, то назовите каталог с файлами сайта в формате типа test.site или test.local, чтобы это было похоже на доменное имя. Всё, что лежит в domains, открывается как отдельные сайты. Примером является http://localhost/, при переходе на который отображаются в браузере файлы из каталога openserver/domains/localhost
- Pashaster Автор 02.12.2017 1. Честно говоря, я не знаю точно, как именно браузеры обрабатывают JS код в данной ситуации, никогда не копался в данном вопросе. Могу только высказать своё предположение, что при обработке HTML кода браузер переходит по всем ссылкам, указанным в нём и скачивает файлы, помещая себе их в кэш, подключая их потом на страницу виртуально. 2. Серверный JS сейчас — очень популярная сегодня тема. Я также стараюсь её постоянно избегать, т.к. считаю её ересью Сегодня на JavaScript пишут серверную часть не только для сайтов, но и программируют на нём железо благодаря Node.js. Также знаю, что новомодные библиотеки типа ReactJS и Vue.js выполняют JS код на сервере, отдавая браузеру уже собранный HTML. Если будет интересно — почитайте об этом на специализированных сайтах, здесь я вас вряд ли проконсультирую.
- Pashaster Автор 07.12.2017 Приветствую В вашем случае поможет Javascript и AJAX запрос. С его помощью будете отправлять данные на сервер при подтверждении формы (нажатие на кнопку с типом submit) из JavaScript кода, а когда сервер вернёт ответ, вставите результаты обратно в форму. Примеры кода для отправки AJAX запроса на чистом JavaScript (без всякого jQuery, хотя с ним и проще) можете найти в комментариях к этой статье выше. PS: В следующий раз делайте поменьше ошибок в комментариях — устал исправлять
- Pashaster Автор 15.12.2017 У Вас проблема не с версией PHP, а с путём к файлу script.php. Пропишите его правильно. Если сложно написать правильно относительный url, воспользуйтесь для начала абсолютным, а потом подберите относительный вариант.
- Александр 22.12.2017 Проблема все-таки в Small HTTP server-е. Он работает только с PHP4.4 максимум.
Немного разобрался с OpenServer Premium 5.2.7. Ваш пример прекрасно заработал. Спасибо за помощь. Осталось разобраться с базами.:)
- Pashaster Автор 23.12.2017 Пожалуйста Рад был помочь Принимаю «благодарности» через форму под статьёй, которые пойдут на развитие проекта.
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-ом выводятся по-разному.
Мне, как начинающему, пришлось помучиться, чтобы с посторонней помощью дойти до этого. Думаю, начинающим будет полезно.
- Pashaster Автор 27.12.2017 Главное, что у вас всё получилось Надеюсь, работу с БД осилили?
- Pashaster Автор 28.12.2017 Чтобы HTML и PHP код вставить в комментарии — заключите их в шорткоды [ code ][ /code ]. Только пробелы уберите от названия до скобок.
Тут динамический текст
- Pashaster Автор 14.01.2018 Честно говоря, не понял сути вопроса. Напишите подробнее, что вы хотите сделать?
- Pashaster Автор 18.01.2018 День добрый По поводу разработки сайта — пишите на email cccpblogcom@gmail.com По поводу 500 уников в сутки — для этого Вам потребуется SEO-специалист и солидный бюджет, т.к. для данной посещаемости есть конкретные сроки. А дальше всё будет зависеть от умений SEO-шника и удачи, что поисковики поставят Ваш сайт в топ. Можете и сами всё сделать, в принципе, если с бюджетом беда: выберите низкоконкурентную тематику, составьте семантическое ядро, наполните сайт контентом, закупите ссылок на авторитетных ресурсах и рекламная компания через контекстку не помешает. Если вы, конечно, не испугаетесь
- Pashaster Автор 23.02.2018 Здравствуйте! Если название товара вводится в текстовый input — просто укажите ему name, чтобы увидеть введённое значение в итоговом массиве $_REQUEST в PHP. Если тэг с названием товара не является частью формы, то у вас 2 варианта отправить данные в PHP из HTML: 1. Добавить внутрь тэгов form следующий элемент:
Он будет скрытым, т.е. визуально на странице пользователь его не увидит, но текст, содержащийся в value, будет присутствовать в массиве $_REQUEST в PHP в скрипте обработчика формы. 2. Сделать отправку формы с помощью JavaScript и AJAX запроса, прочитав значение нужного тэга там же и передав его PHP скрипту. Второй вариант предпочтительнее, но если не знаете, как отправлять AJAX запросы, то воспользуйтесь первым (он не совсем рекомендуется по причине дублирования контента страницы, на что могут обратить внимание поисковики).
- Pashaster Автор 07.10.2018 Добрый вечер Отвечу вам на примере, который я написал в ответ одному из подписчиков в ВК паблике. Пользуясь случаем, хочу Вас также пригласить в сообщество, где вы всегда сможете получить ответ на все интересующие вопросы, связанные с разработкой сайтов. Итак, пример. Допустим, Вам нужно добавить поле для отправки email на контактную форму. Для этого Вы в HTML код формы (между тэгами form) вставляете следующее:
Открывающий тэг form расширяете этими атрибутами (или дополняете этими атрибутами, если их не было):
Добавляете в корень сайта файл email_send.php и в нём уже сможете получить email, введённый с HTML формы, в массиве $_POST или $_REQUEST внутри переменной email. Для проверки можете вывести его содержимое на экран следующей конструкцией:
echo ''; print_r($_REQUEST); die();Значение переменной сможете использовать следующим образом в коде:
$_REQUEST['email']Надеюсь, понятно объяснил. Если остались вопросы — не стесняйтесь спрашивать
- Pashaster Автор 01.12.2018 Добрый день. То, что Вы хотите реализовать, естественно выполнимо По сути Вам нужно будет заменить все WordPress-функции (как правило, их имена начинаются с wp_) на аналогичные, написанные на чистом PHP, либо вообще отказаться от их использования. Также можете просто найти объявления данных функций в ядре самого WordPress (пройдитесь поиском по файлам вашего ВП сайта) и скопировать их к себе на чистый html-сайт. И, да, чуть не забыл. Сайт исключительно на html, естественно, вообще не будет поддерживать никакие WP-функции. На сервере нужен будет установленный PHP. Для максимальной совместимости лучше брать ту версию, с которой совместим ВордПресс плагин (информацию об этом можно найти на странице плагина в официальном каталоге wordpress.org), но если будете переписывать функции заново и хорошо владеете PHP, то лучше брать самую последнюю.
- Игорь 01.12.2018 Спасибо за быстрый ответ. Подписался на рассылку, надеюсь узнать много полезного. Сервер бегет, думаю там поддерживается php. Я пробую на опен сервере.
Плагин заброшен разработчиком, а мне понравился. Он пока работает на последних версиях вордпресс. А вот столкнулся впервые с переносом на html, вернее сам захотел, а инфы кот наплакал. Я как китаец, хорошо умею копировать, было бы с чего и понимание как))) А я, как вы уже догадались, не очень разбираюсь в этом. Я больше по дизайну))) Попробую реализовать это, впереди бессонная ночь. Можно пояснить это — найти объявления данных функций в ядре самого WordPress (пройдитесь поиском по файлам вашего ВП сайта) и скопировать их к себе на чистый html-сайт. Не совсем понятно.function wp_comment($args)
Здесь wp_comment — это название функции, args — название переменной, в которую будут записываться передаваемые при вызове функции аргументы (проще говоря, данные, которые будут обрабатываться функцией). А всё, что находится между фигурными скобками — это тело функции, которое представляет собой код, выполняемый при вызове функции. Функции вызываются по имени с указанием аргументов, необходимых для её работы. Вот пример вызов функции в PHP:
wp_comment([1, 2, 3]);Данная демо функция в месте её вызова вернёт строку 1 and 2 and 3. Возвращаясь к Вашему примеру, вам нужно будет найти в коде модуля вызовы стандартным ВП функций, а затем в коде поиском найти их объявления. И найденные объявления функций Вам нужно будет перенести на свой PHP+HTML сайт в отдельный PHP-файл (для начала можно в index.php, который OpenServer вызывается по умолчанию при вызове доменного имени сайта в браузере). Внизу этого файла вставьте скопированное описание функции из WordPress, а затем в коде выше вызовите её, выводя полученные с её помощью данные в HTML, который в обработанном виде будет отображаться браузером. Но это самый примитивный вариант. В реальных PHP приложениях код разбит на множество файлов, каждый из которых представляет отдельный класс с набором функций. В других файлах данные классы подключаются и функции вызываются по имени класса, который необходим. С этим вы можете столкнуться в WordPress. Надеюсь, Вам ответил.
- Игорь 04.12.2018 Понял, что ничего не понял. Уяснил себе, чтобы вести разговор нужно знать хотя бы основы предмета))) Начинаю изучать их. Пока сделал следующее: установил плагин из репозитория на последнюю версию вордпресс, стал (не конфликтует). Скачал себе на комп его, посмотрел внутрь, там 1 файл php (как понимаю основной)+css+js (как встроенные, так и со сторонних библиотек). Я могу писать не языком программиста, прошу прощения. Пройдусь по файлу php и по кодексу вордпресс. Если интересно, что будет дальше, могу оставлять отчеты здесь)))
Хорошего дня.
- Pashaster Автор 05.12.2018 Удачи
- Pashaster Автор 19.05.2019 Приветствую Если время обновляется в режиме realtime, то то реализуется с помощью JavaScript. Если дата просто присваивается при загрузке страницы, то её получение происходит на бэкенде (PHP например) и это значение вставляется в HTML код, который на бэкенде и рендерится. Но я лично не делаю ни первым, ни вторым способом. Если нужно получить текущую дату для фиксации её в базе данных, то это нужно делать на бэкенде уже при получении данных формы и перед записью обработанной информации в базу.
- Pashaster Автор 11.11.2019 Здравствуйте. Спасибо за отзыв Боюсь, что для Вашего случая лучше использовать JavaScript и localstorage вместо PHP и $_SESSION. Повесьте на событие onClick запись данных в localstorage средствами JavaScript, а у инпута в значении атрибута value укажите значение переменной localstorage. Либо, если такового не будет — пустую строку (для самой ервой загрузки, когда данных в хранилище ещё нет).
- Pashaster Автор 18.11.2019 Добрый день. Не совсем понял, что значит «передать данные через текст»? В разделе «Как передать массив PHP в HTML?» описан ка раз пример передачи данных через форму кнопки, как Вы выразились
- Pashaster Автор 22.05.2020 Добрый день. По Вашему вопросу — если Вам нужно сделать действие на странице без её перезагрузки, то Вам всего-навсего нужен AJAX Не нужно придумывать сложности
Добавить комментарий Отменить ответ
- Партнёры проекта
- Netpeak Spider - революция SEO аудита new
- Зехост - наш хостинг провайдер
- Регру - регистратор доменов
- TemplateMonster - шаблоны для сайта
- Найди работу с Jooble
- Jobsora - сервис поиска работы
- SerpStat - сервис SEO аналитики
- Нетология - IT-курсы онлайн new
- МираЛинкс - заработок на сайте
- Jobeka - сайт поиска работы
- Хотите стать партнёром? Напишите администратору - cccpblogcom@gmail.com
- Новые статьи
-
OpenCart vs Хорошоп: победа по очкам или нокаут?
Интернет-магазин товаров для здоровья iZdorov — первый eCommerce опыт
Техническое обслуживание сайта на WordPress. К кому обратиться?

Dream Filter — фильтр товаров OpenCart, о котором мечтают
Новая reCAPTCHA от Google 3 версии: возможности и установка на сайт
Как передать переменную PHP в HTML и обратно?

Выделение активного пункта меню с помощью jQuery
- Pashaster к записи Новая reCAPTCHA от Google 3 версии: возможности и установка на сайт
- Альберт к записи Как сделать «хлебные крошки» на PHP?
- Нина к записи Рейтинг платформ для Интернет магазина — ТОП-10 коробочных движков
- Нина к записи Рейтинг платформ для Интернет магазина — ТОП-10 коробочных движков
- Vyacheslav к записи Подключаем оплату биткоинами в Интернет-магазине за 4 шага
Данный ресурс предназначен для всех, кто хочет сделать сайт своими руками! Здесь Вас ожидают ответы на вопросы: как создать свой сайт с нуля, как сделать его популярным, способы заработка на сайтах и многое другое!

Знакомимся с Laravel routing и controllers
Copyright ©2015-2023 СССР блог
Как передать значение переменной из js в php
Потребовалось для одного из типов контента несколько расширить функцию рейтинга. Вместо "нравится-не нравится" нужно сделать голосование по шестибалльной системе. +5 +3 +1 -1 -3 -5
Как сделать шесть кнопок, вроде разобрался.Как это всё украсить — потом разберусь. Пока не работает сам функционал.
Но теперь не знаю, как передать из \templates\tseso\js\rating.js значение балла рейтинга в \system\controllers\rating\actions\vote.php
Даже если просто объявить переменную в js файле
Все равно vote.php это значение не подхватывает и даже если отменить проверку на is_numeric($points) — все равно в базу пишется NULL
Кто из понимающих людей поможет разобраться?
Заранее признателен.
Ris
- Испытатели
- На орбите
- Сообщений: 3668
#2 25 ноября 2015 в 22:55
Ну так у вас же написано:Значит данные приходят через ajax.
соответственно смотрим например здесь (вот тут реализация аякса с post запросом).Для участка выше код будет примерно такой:

Val
- Ростов-на-Дону
- Испытатели
- На орбите
- Сообщений: 1165
#3 25 ноября 2015 в 23:17
Val,
Но значение остальных 4 переменных передаются из rating.js в vote.php без проблем.
Вписываю пятую переменную — она не передается.Вот же функция .click(function()< icms.rating.vote('up', controller, subject, id, points); >);
Вот первые четыре переменные отлично передаются, а points — нет. Почему такое может быть?Потом разберусь с методом post.
Пока задача стоит явно объявленную переменную var points = 5; отправить в php скрипт vote.php.
Или нельзя прямо в яваскрипте задать значение переменной?

