Кнопка отправки без формы

Итак, мне нужна кнопка, которая при нажатии отправляет идентификатор статьи на страницу php через запрос GET, а страница PHP генерирует краткое изложение моей статьи в формате PDF.

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

Вот что у меня есть:

echo "<td><button type=\"submit\" formaction=\"wp-content/themes/csed/data-entry/results.php\" formmethod=\"get\"class=\"button\" name=\"id\" value=\"" .$single->idArticle. "\" formtarget=\"_blank\">PDF</button></td>";

Как видите, я пытался использовать атрибут formaction, чтобы заставить эту работу работать, но сейчас моя кнопка ничего не делает. Вообще ничего. Что я делаю неправильно? Возможно ли то, чего я пытаюсь достичь?

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

Ivar 22.04.2018 12:13

(Как вы уже писали в заголовке :) Кнопка не имеет формы, связанной с .... - Итак, вопрос содержит ответ: добавьте форму, которая еще отсутствует. Прочтение предоставит вам несколько вариантов для этого: developer.mozilla.org/en-US/docs/Web/HTML/Element/button - Возможная копия: stackoverflow.com/q/7020659/367456?

hakre 22.04.2018 12:15

У вас может быть таблица внутри формы. Альтернативой является то, что вместо этого вы используете какой-то JavaScript для отправки данных, но ничто не мешает вам иметь таблицу внутри формы.

Qirel 22.04.2018 12:16

Это сломает мне стол. Возможно, я мог бы пойти и исправить CSS, но это кажется слишком большим трудом. Я чувствую, что здесь должно быть более простое решение. Как насчет использования атрибута onClick для отправки в javascript? Это сработает?

Ching Ling 22.04.2018 12:18

@ChingLing: я добавил ответ с примером HTML, который должен показать, как можно обойти свои ограничения. submit - это тип по умолчанию, кстати, поэтому вам не нужно его записывать. См. Ссылку MDN для получения более подробной информации и опций.

hakre 22.04.2018 12:21
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
4
5
6 910
1

Ответы 1

Если вы не можете разместить кнопку в элементе формы, вы можете связать ее с одним из них с помощью идентификатора формы:

<form id = "myform"></form>

...

<button form = "myform" ... >

Таким образом, элемент <form> может быть где угодно в гипертекстовом документе, будь то до или даже после кнопки. Кнопка не должна быть потомком формы.

Я быстро скомпилировал этот элементарный пример из документации MDN, которая доступна даже на разных языках (хотя я, как не носитель английского языка, обычно предпочитаю английский вариант):

Я знаю об этом подходе. Однако это не то, что я ищу. Мне нужен способ отправки данных через GET без использования формы. Я просто читал и похоже, что это возможно с использованием jquery и ajax. Тем не менее, спасибо за ваш ответ.

Ching Ling 22.04.2018 12:25

@ChingLing: Лучше прочтите ссылку, вместо того, чтобы складывать еще больше вещей сверху: formmethod = "get", и кнопка выполнит запрос на получение. Это все внутри. Не останавливайся так рано, особенно. если вы новичок в используемой технологии, например ваш HTML кажется либо совершенно новым или же ржавым (- ;.

hakre 22.04.2018 12:29

@hakreЯ использую formmethod = "get" в моей кнопке. Это все еще не работает. Смотрите мой код в OP. Я предполагаю, что из-за того, что вы и другие упомянули, мне не хватает тегов формы? Я хочу добиться этого, не имея формы. Вы говорите, что это возможно?

Ching Ling 22.04.2018 12:37

Возможно, вам потребуется добавить в действие параметры запроса. По крайней мере, так это работает в PHP (или вы добавляете поля ввода, но поскольку у вас есть только один параметр, я бы начал здесь с параметрами запроса). И да, со стандартной ссылкой это возможно без формы, поскольку запрос GET является стандартным запросом ссылок. Если вы понимаете основы, вы можете творчески найти любое необходимое решение. См. Этот вопрос и ответ, например: stackoverflow.com/q/2906582/367456 (и посмотрите голоса за, вы совсем не одиноки)

hakre 22.04.2018 12:56

Другие вопросы по теме