- Reset button not working in html (php)
- Not the answer you’re looking for? Browse other questions tagged php html or ask your own question.
- Linked
- Related
- Hot Network Questions
- Subscribe to RSS
- gii generated code: Html::resetButton not working after first search is performed #8608
- Comments
- ghost commented May 29, 2015
- title) ?>
- Почему кнопка в yii2 отрабатывает только при втором клике?
- Кнопка сброса не работает в html (php)
- Решение
- Другие решения
- Html-помощник
- Основы #
- Формирование тэгов #
- Формирование CSS классов и стилей #
- Экранирование контента #
- Формы #
- Создание форм #
- Кнопки #
- Поля ввода #
- Тэги label и отображение ошибок #
- Атрибуты name и value для полей ввода #
- Подключение встроенных стилей и скриптов #
- Ссылки #
- Изображения #
- Списки #
Reset button not working in html (php)
I have placed my input type reset button inside form but its still not working.
I have also tried Reset
You should place the in a form like this,it will definitely work
You just need to put your reset button inside form. In following code I have taken one input box also an an example. I hope it helps.
can you please try without echo anything inside textarea
I think reset button is working fine.
Excuse Me! You are using default value in input attribute. Remove default value from it. Then type anything then click rest it will make your text box empty.
I have a form submitting variables to another PHP file. In the second file, there is a button that leads back to the first file for eventual correction od submitted values. The values are retained in the form by $_POST. The «Reset» button works only when the form is used the first time (empty). After submitting and return from the second PHP file, the «Reset» doesn’t do anything, no values are cleared. The button seems to be fully inactive.
@Jaspreet Kaur You need to add form tag outside the table. Please check my previous comment for it.
Not the answer you’re looking for? Browse other questions tagged php html or ask your own question.
Linked
Related
Hot Network Questions
Subscribe to RSS
To subscribe to this RSS feed, copy and paste this URL into your RSS reader.
site design / logo © 2021 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2021.10.15.40479
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.
Источник
gii generated code: Html::resetButton not working after first search is performed #8608
Comments
ghost commented May 29, 2015
I’m reporting a bug.
Problem: Reset button does not clear input fields after first search is performed.
I’m using the advanced template in Yii2 and working on the frontend. I used gii to generate model and crud code for 1 table in MySQL called «Maps» with no further modifications made.
MapsController / index action points to the views/maps/index.php view. In that view file, I uncommented the following code to perform searches on model attributes.
The above code enables an ActiveForm in the ( «_search.php») view file with input boxes and a «search» & «reset» buttons. If I enter data into any of the form fields WITHOUT performing a search function, then hit the «reset» button, the form fields will be cleared of any text I put in.
The problem occurs after I enter text, hit the «search» button, then hit the «reset» button. It does NOT clear text in the input boxes.
views/maps/index.php file:
title) ?>
$dataProvider, ‘filterModel’ => $searchModel, ‘columns’ => [ [‘class’ => ‘yii\grid\SerialColumn’], ‘mapID’, ‘name’, ‘description:ntext’, ‘updated’, ‘updatedBy’, // ‘make’, // ‘model’, // ‘year’, // ‘eManufacturer’, // ‘eName’, // ‘baffleType’, // ‘eSize’, // ‘isCustomerMap’, // ‘customerID’, // ‘isOriginalMap’, // ‘photoUrl:url’, // ‘created’, [‘class’ => ‘yii\grid\ActionColumn’], ], ]); ?>
The text was updated successfully, but these errors were encountered:
Источник
Почему кнопка в yii2 отрабатывает только при втором клике?
Во View есть кнопка:
Обработчик в контроллере:
Действие происходит только после второго клика по кнопке.
Что я делаю не так?
Спасибо.
- Вопрос задан более трёх лет назад
- 857 просмотров
Надо искать js, который перехватывает клик по кнопке. Видимо Вы написали где-то обработчик клика с сильно общим селектором, типа:
Или перехват отправки формы или еще что либо подобное. В любом случае, если запрос не идет, то дело в js, а не в php и уж тем более не в контролере.
в этом проекте чистый basic, js туда вообще не писал
а как тип шаблона связан с наличием js?
получается для каждого button`а надо писать js обработчик?
Здравствуйте.
—
Помоему проблема в двойных условиях, два if чудят. Я с подобной ситуацией сталкивался. Вам надо написать просто:
То есть, как в старые добрые девяностые, когда был php 4 ))) Мы писали, если введено имя кнопки submit, тогда происходит то или это, если не нажали, тогда ничего не происходит.
Этот же подход к делу подойдёт, если не хочешь использовать ActiveForm
Можно сделать таких форм в на одной странице хоть с десяток, а сработает та, у которой name соответствует правилам, прописанным в контроллере, я так форму поиска впихнул в верхнее меню без привязки каждой странице к конкретной модели, и ошибок никаких нет. Главное, если будешь впихивать input, посмотри пример здесь
Источник
Кнопка сброса не работает в html (php)
Я поместил кнопку сброса типа ввода внутри формы, но она все еще не работает.
Я также пытался Reset
Решение
Если вы ожидаете, что кнопка сброса очистит форму, сброс не работает. Это сбросит поля формы на что они были, когда страница была загружена. В этом случае у вас есть предварительно заполненный контент в вашей форме, поэтому нажатие кнопки «Сброс» просто отменит любые пользовательские изменения с момента загрузки страницы.
Чтобы сбросить все поля формы на пустое / ничего, вам понадобится JavaScript. Сначала получите объект DOM формы, затем переберите все типы ввода, которые вы хотите сбросить, и установите каждый field.value = » (введите типы текста / textarea) или измените атрибуты (для выбора, радио, флажок и т. д.), чтобы отменить выбор, и так далее. Превратите это в функцию (возможно, где-то есть готовая часть, кажется, я потерял свою), и установите ее для кнопки сброса onclick (а также return false если вы не хотите, чтобы действие по умолчанию тоже запускалось).
Редактировать: При быстром поиске, вот основной пример как очистить форму пустые значения.
Другие решения
Я думаю, что вы забыли вставить form тег в вашем HTML. Это должно работать, если вы вставите код кнопки в .Что-то вроде этого:
Вы должны разместить в такой форме, это определенно будет работать
Вам просто нужно поместить кнопку сброса внутри формы. В следующем коде я взял одно поле ввода и пример. Я надеюсь, что это помогает.
пожалуйста, попробуйте без эха ничего внутри TextArea
Я думаю кнопка сброса работает нормально.
@Jaspreet Kaur Вам нужно добавить тег формы вне таблицы. Пожалуйста, проверьте мой предыдущий комментарий для этого.
Извините меня! Вы используете значение по умолчанию во входном атрибуте. Удалить значение по умолчанию из него. Затем введите что-нибудь, затем нажмите rest, и текстовое поле будет пустым.
Источник
Html-помощник
Каждое веб-приложение формирует большое количество HTML-разметки. Если разметка статическая, её можно эффективно сформировать смешиванием PHP и HTML в одном файле, но когда разметка динамическая, становится сложно формировать её без дополнительной помощи. Yii предоставляет такую помощь в виде Html-помощника, который обеспечивает набор статических методов для обработки часто-используемых HTML тэгов, их атрибутов и содержимого.
Note: Если ваша разметка близка к статической, лучше использовать непосредственно HTML. Нет никакой необходимости в том, чтобы всё подряд оборачивать вызовами Html-помощника.
Основы #
Так как формирование динамической HTML-разметки при помощи конкатенации строк очень быстро вносит хаос в проект, Yii предоставляет набор методов для управления атрибутами тэгов и формирования тэгов на основе этих атрибутов.
Формирование тэгов #
Код формирования тэга выглядит следующим образом:
Здесь первый аргумент — это название тэга. Второй — содержимое, которое будет заключено между открывающим и закрывающим тэгами. Заметьте, что мы используем Html::encode . Это связано с тем, что содержимое не экранируется автоматически, чтобы можно было по-необходимости использовать чистый HTML. Третий аргумент — это массив настроек для HTML-кода, а другими словами — массив атрибутов для тэга. В этом массиве ключи являются названиями атрибутов, например class , href или target , а значения в массиве являются значениями этих атрибутов.
Вышеприведённый код сформирует следующую HTML-разметку:
В тех случаях, когда вам необходимо только закрыть или открыть тэг, можно использовать методы Html::beginTag() и Html::endTag() .
Дополнительные атрибуты используются во многих методах Html-помощника и в различных виджетах. Во всех этих случаях в дело вступают механизмы дополнительной обработки данных, о которых следует знать:
- Если значение равно null , соответствующий атрибут не будет выведен.
- Атрибуты, значения которых имеют тип boolean, будут интерпретированы как логические атрибуты.
- Значения атрибутов будут экранированы с использованием метода Html::encode().
Если в качестве значения атрибута передан массив, он будет обработан следующим образом:
Если атрибут является одним из атрибутов данных, указанных в yii\helpers\Html::$dataAttributes, например data или ng , то будет сформирован список атрибутов по одному для каждого элемента массива. Например, код ‘data’ => [‘id’ => 1, ‘name’ => ‘yii’] сформирует data-id=»1″ data-name=»yii» ; а код ‘data’ => [‘params’ => [‘id’ => 1, ‘name’ => ‘yii’], ‘status’ => ‘ok’] сформирует data-params=’<"id":1,"name":"yii">‘ data-status=»ok» . Заметьте, что в последнем примере используется формат JSON для формирования вывода вложенного массива.
Если атрибут НЕ является атрибутом данных, значение будет сконвертировано в формат JSON. Например, код [‘params’ => [‘id’ => 1, ‘name’ => ‘yii’] сформирует params=’<"id":1,"name":"yii">‘ .
Формирование CSS классов и стилей #
При формировании атрибутов для HTML-тэгов часто приходится начинать с некоторых атрибутов по умолчанию, которые затем необходимо изменять. Для того, чтобы добавить или удалить CSS-класс, можно использовать следующий подход:
Можно указать несколько CSS-классов, используя синтаксис массива:
При добавлении или удалении классов тоже можно использовать массивы:
Html::addCssClass() предотвращает дублирование классов, поэтому можно не беспокоиться, что какой-либо класс будет добавлен дважды:
Если CSS-класс задаётся с помощью массива, можно использовать именованные ключи массива для обозначения логического предназначения класса. В этом случае класс с таким же ключом будет проигнорирован во время использования Html::addCssClass() :
CSS-стили могут быть установлены схожим образом с помощью атрибута style :
При использовании метода addCssStyle() можно указать массив, пары ключ-значение которого соответствуют названиям и значениям CSS-свойств, или строку, например width: 100px; height: 200px; . Эти два формата могут быть преобразованы друг в друга с помощью методов cssStyleFromArray() и cssStyleToArray(). Метод removeCssStyle() принимает на вход массив атрибутов, которые следует удалить. Если удаляется всего один атрибут, его можно передать строкой.
Экранирование контента #
Для корректного и безопасного отображения контента специальные символы в HTML-коде должны быть экранированы. В чистом PHP это осуществляется с помощью функций htmlspecialchars и htmlspecialchars_decode. Проблема использования этих функций заключается в том, что приходится указывать кодировку и дополнительные флаги во время каждого вызова. Поскольку флаги всё время одинаковы, а кодировка остаётся одной и той же в пределах приложения, Yii в целях безопасности предоставляет два компактных и простых в использовании метода:
Формы #
Разметка форм состоит из повторяющихся действий и часто приводит к ошибкам, поэтому есть целый набор методов, которые помогают справиться с этой задачей.
Note: Рассмотрите возможность использования ActiveForm, если работаете с моделями и нуждаетесь в валидации данных.
Создание форм #
Открывающий тэг формы может быть выведен с помощью метода beginForm() как показано ниже:
Первый аргумент — это URL-адрес, на который будет отправлена форма. Он может быть задан в виде Yii-маршрута и параметров, подходящих для передачи в метод Url::to(). Второй аргумент — способ отправки данных: по умолчанию это post . Третий аргумент — массив атрибутов формы. В данном примере мы изменяем способ кодирования данных в POST-запросе на multipart/form-data . Это необходимо для загрузки файлов.
Закрыть тэг формы можно простым кодом:
Кнопки #
Для формирования кнопок можно использовать следующий код:
Первый аргумент во всех трёх методах — это название кнопки, а второй — её атрибуты. Название кнопки не экранируется, поэтому при получении данных от конечных пользователей экранируйте их с помощью метода Html::encode().
Поля ввода #
Методы формирования полей ввода делятся на две группы. Первые начинаются со слова active и называются «active inputs», а вторые не содержат в своём названии слова active . «Active inputs» формируют поля ввода, которые получают данные из указанного атрибута модели, в то время как обычные методы формирования полей ввода непосредственно принимают данные.
Наиболее общие методы для формирования полей ввода:
Если вам заранее известен тип поля ввода, удобнее будет пользоваться этими вспомогательными методами:
Сигнатура методов для формирования радио-переключателей и чекбоксов немного отличается:
Выпадающие и обычные списки могут быть сформированы следующим образом:
Первый аргумент — это значение атрибута name для поля ввода, второй — выбранное в нём значение и, наконец, третий аргумент — это массив, ключами которого является список значений для формирования списка, а значениями массива являются названия пунктов в нём.
Если вы хотите сделать в списке доступными для выбора несколько вариантов, хорошим выбором будет список чекбоксов:
Если нет, используйте радио-переключатель:
Тэги label и отображение ошибок #
Так же как и для полей ввода, есть два метода формирования тэгов label для форм. Есть «active label», считывающий данные из модели и обычный тэг «label», принимающий на вход непосредственно сами данные:
Для отображения общего списка ошибок формы на основе модели или моделей можно использовать следующий подход:
Для отображения одной отдельной ошибки:
Атрибуты name и value для полей ввода #
Также имеются методы для получения значений атрибутов id, name и value для полей ввода, сформированных на основе моделей. Эти методы используются в основном внутренними механизмами, но иногда могут оказаться подходящими и для прямого использования:
В вышеприведённом коде первый аргумент — это модель, а второй аргумент — выражение для поиска атрибута модели. В самом простом случае оно представляет собой название атрибута модели, а вообще это может быть название, которому предшествует (и/или после которого следует) индекс массива. Такой формат используется в основном для табличного ввода данных:
- [0]content используется для табличного ввода данных, чтобы указать на атрибут «content» первой модели табличного ввода;
- dates[0] указывает на первый элемент массива, с помощью которого задан атрибут модели «dates»;
- [0]dates[0] указывает на первый элемент массива, с помощью которого задан атрибут «dates» первой модели табличного ввода.
Для того, чтобы получить название атрибута модели в чистом виде (без суффиксов и префиксов), можно использовать следующий подход:
Подключение встроенных стилей и скриптов #
Для формирования встроенных скриптов и стилей есть два метода:
Если вы хотите подключить внешний CSS-файл:
Первый аргумент — URL-адрес. Второй — массив настроек. Помимо обычных настроек можно указать следующие:
- condition для оборачивания тэга
- с помощью условных комментариев с определённым условием. Надеемся, что вам никогда не понадобятся условные комментарии 😉
- noscript может быть установлен в значение true , чтобы обернуть тэг
- с помощью тэга , таким образом скрипт будет подключён только в том случае, если у пользователя в браузере нет поддержки JavaScript или же пользователь сам отключил его.
Для подключения JavaScript-файла используйте код:
Как и в случае с CSS, первый аргумент указывает ссылку на файл, который должен быть подключен. Настройки задаются во втором аргументе. Можно указать настройку condition таким же образом, каким она указывается для метода cssFile .
Ссылки #
Существует удобный метод формирования ссылок:
Первый аргумент — это текст ссылки. Он не экранируется, поэтому при использовании данных, полученных от конечных пользователей, необходимо экранировать его с помощью Html::encode() . Второй аргумент — это содержимое атрибута href тэга . Смотрите Url::to() для получения подробностей относительно значений, которые могут быть переданы в качестве второго аргумента. Третий аргумент — массив атрибутов для тэга.
Если нужно сформировать ссылку mailto , можно использовать следующий подход:
Изображения #
Для формирования тэга изображения используйте следующий код:
Помимо псевдонимов первый аргумент может принимать маршруты, параметры и URL-адреса таким же образом как и метод Url::to().
Списки #
Неупорядоченные списки могут быть сформированы следующим образом:
Для формирования упорядоченных списков используйте Html::ol() .
Источник