Назначение 2 значений элементу радиокнопки и их вызов в PHP

У меня есть радиовходы в форме

Я пытаюсь присвоить им два разных значения. Одно должно быть названием продукта, другое - его ценой. Затем в php я буду подсчитывать выборы.

<input type = "radio" id = "tile1" 
               name = "tile" value = "Calcatta 12x 24 | 2.99" />
<input type = "radio" id = "tile2" 
               name = "tile" value = "Subway 3x12 | 1.99" />
<input type = "radio" id = "tile3" 
               name = "tile" value = "Marazza 12x24 | 2.99" />
<input type = "radio" id = "tile4" 
               name = "tile" value = "Chicaro 12x12 | 3.99" />

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

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

Ваш <input> находится внутри <form>. Этот <form> будет отправлять значения на другую страницу через GET или POST. Эта страница будет считывать значения в $_GET или $_POST и выполнять логику для обработки этих значений. Найдите PHP и формы, у вас будут руководства о том, как это настроить (например, w3schools.com/php/php_forms.asp)

Nic3500 24.09.2018 13:58

Радиокнопка - не лучшая идея для выбора нескольких опций, вам нужно использовать CheckBox на подставке Radio.

saAction 24.09.2018 14:00

Я знаю, как настроить php для публикации. Я хочу иметь возможность вызывать каждое значение отдельно. как $ tile [0] или $ tile [1], но это не работает

Christopher Futch 24.09.2018 14:00

Мы хотим, чтобы был выбран только один вариант, поэтому я выбрал радиокнопки

Christopher Futch 24.09.2018 14:02

Таким образом, вы получаете строку, разделенную |, поэтому взорвите ее, очистите ненужные пробелы, и у вас будут 2 части

RiggsFolly 24.09.2018 14:05
Стоит ли изучать 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 и хотите разрабатывать...
3
5
39
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны explode() значение tile, например:

$tile    = $_POST['tile']; // e.g. "Calcatta 12x 24 | 2.99"
$details = explode(' | ', $tile);
echo $details[0]; //Calcatta 12x 24
echo $details[1]; //2.99

Обратите внимание: никогда не доверяйте и не используйте данные, отправленные пользователем, как в примере выше. Избегайте использования переменных $_POST / $_GET «как есть».

Я использую настоящую escape-строку

Christopher Futch 24.09.2018 14:13

И спасибо. Я, должно быть, читал это 6 раз в другом месте, но он просто застрял в вашем посте

Christopher Futch 24.09.2018 14:13

@ChristopherFutch, не могли бы вы принять мой ответ как правильный, если он решит вашу проблему? Спасибо! :)

fabrik 24.09.2018 14:14

@ChristopherFutch Я полагаю, вы не взорвали строку, но вы ссылаетесь на символы в ней (0 = c, 1 = a). Сначала используйте explode().

fabrik 24.09.2018 14:45

@ChristopherFutch О, понятно. В value ваших входов нет пробелов. В таком случае лучше использовать explode('|', $walltile); :)

fabrik 24.09.2018 14:54
<input type = "radio" name = "walltile" id = "tile1" value = "calcatta12x24|2.99" />, тогда php - это `$ walltile = mysqli_real_escape_string ($ conn, $ _POST ['walltile']); $ walltiledetails = explode ('|', $ walltile); `Я не понимаю, почему это не работает
Christopher Futch 24.09.2018 14:55

@ChristopherFutch, пожалуйста, посмотрите на разницу между ' | ' и '|'. Разделитель имеет значение.

fabrik 24.09.2018 14:56

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

Christopher Futch 24.09.2018 15:01

понятно. спасибо @fabrik

Christopher Futch 24.09.2018 15:01

Не беспокойся @ChristopherFutch :)

fabrik 24.09.2018 15:01

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