PHP HTML Показать свойства кнопки - PullRequest
2 голосов
/ 30 марта 2012

Я бы хотел получить как можно больше свойств для отображения на кнопке.

Кнопка:

<input name="Accept" type="submit" class="button" id="Accept" value="Accept" />

Код кнопки:

if(isset($_POST['Accept'])){
//show button properties here
}

То, что я хотел бы показать при нажатии кнопки:

  • name: Accept
  • тип: отправить
  • класс: кнопка
  • id: принять
  • значение: принять

и все, что еще можно показать

Спасибо заранее.

Ответы [ 3 ]

2 голосов
/ 30 марта 2012

Один из возможных способов без использования javascript - сохранить копию данных в названии элемента:

<input name="Accept" type="submit" class="button" id="Accept" value="Accept" />

становится:

<input name="Accept.submit.button.Accept" type="submit" class="button" id="Accept" value="Accept" />

Вы можете получить value из массива $_POST. Для остальных свойств просто разделите ключ элемента, используя explode().

1 голос
/ 30 марта 2012

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

В качестве другого варианта я бы добавил информацию в значение кнопки в форме JSON, поскольку значение кнопки обычно в любом случае не имеет смысла.

И если вы действительно ищите идеи, вы можете вставить информацию в строку запроса URL-адреса в атрибуте действия формы, а затем получить информацию, проверив массив GET (однако, если метод формы get вместо публикации значения могут быть перезаписаны!)

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


Что касается ответа andrejd, обратите внимание, что хотя вы можете использовать функцию onSubmit для отправки с Ajax, а затем вернуть false, чтобы отменить отправку по умолчанию, обратите внимание, что при таком подходе существуют следующие проблемы:

1) Функция onSubmit не знает, какая кнопка была нажата, однако вместо этого вы можете использовать событие onClick для кнопки, но вам придется привязываться к каждой кнопке отправки в форме (вы можете сделать это намного проще с помощью jquery и др.)

2) Поскольку Ajax не влияет на содержимое страницы, поэтому ypu будет обновлять его самостоятельно или перемещаться по странице самостоятельно, последнее можно сделать с помощью «location.href»

3) Если вы отправляете файлы, вам будет сложно делать это с ajax, вы можете попробовать использовать плагин jquery fileupload.

4) Ajax ограничен одним и тем же источником (что-то вроде отправки формы tgat), вы можете попытаться обойти его, используя JSONP.

5) Ajax не будет работать, если клиент не имеет JavaScript (например, некоторые мобильные телефоны или некоторые текстовые браузеры, такие как браузеры Linux), или отключил JavaScript, или использует более старый браузер, и в целом это не рекомендуется полагаться исключительно на Ajax, но вместо этого, по крайней мере, предоставить альтернативу для этих случаев.


Для задач 2-4 вы можете также решить их, добавив в Ajax только дополнительный контент, а затем вернув true, чтобы отправка по умолчанию отправляла форму.

1 голос
/ 30 марта 2012

Нет способа получить свойства элемента HTML с помощью обычного поведения HTML, но вы можете использовать функцию JavaScript, которая обрабатывает событие формы "onSubmit", с помощью которого вы можете отправлять все, что вам нужно.

...