У меня есть радиовходы в форме
Я пытаюсь присвоить им два разных значения. Одно должно быть названием продукта, другое - его ценой. Затем в 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" />
Для отправки электронного письма с подтверждением я должен иметь возможность вызвать по названию продукта. Для подсчета общей стоимости мне нужно иметь возможность назвать цену продукта.
Я попытался найти решение, но мне не удалось найти конкретное решение, которое работает.
Радиокнопка - не лучшая идея для выбора нескольких опций, вам нужно использовать CheckBox на подставке Radio.
Я знаю, как настроить php для публикации. Я хочу иметь возможность вызывать каждое значение отдельно. как $ tile [0] или $ tile [1], но это не работает
Мы хотим, чтобы был выбран только один вариант, поэтому я выбрал радиокнопки
Таким образом, вы получаете строку, разделенную |, поэтому взорвите ее, очистите ненужные пробелы, и у вас будут 2 части






Вы должны 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-строку
И спасибо. Я, должно быть, читал это 6 раз в другом месте, но он просто застрял в вашем посте
@ChristopherFutch, не могли бы вы принять мой ответ как правильный, если он решит вашу проблему? Спасибо! :)
@ChristopherFutch Я полагаю, вы не взорвали строку, но вы ссылаетесь на символы в ней (0 = c, 1 = a). Сначала используйте explode().
@ChristopherFutch О, понятно. В value ваших входов нет пробелов. В таком случае лучше использовать explode('|', $walltile); :)
<input type = "radio" name = "walltile" id = "tile1" value = "calcatta12x24|2.99" />, тогда php - это `$ walltile = mysqli_real_escape_string ($ conn, $ _POST ['walltile']); $ walltiledetails = explode ('|', $ walltile); `Я не понимаю, почему это не работает
@ChristopherFutch, пожалуйста, посмотрите на разницу между ' | ' и '|'. Разделитель имеет значение.
хорошо, пробел был пробелом. Работает как шарм. Я получил около 5 отрицательных голосов за этот вопрос, но, черт возьми, оно того стоило. . Я не могу понять, как принять ваш ответ как правильный. пожалуйста, помогите мне сделать это сейчас
понятно. спасибо @fabrik
Не беспокойся @ChristopherFutch :)
Ваш
<input>находится внутри<form>. Этот<form>будет отправлять значения на другую страницу через GET или POST. Эта страница будет считывать значения в$_GETили$_POSTи выполнять логику для обработки этих значений. Найдите PHP и формы, у вас будут руководства о том, как это настроить (например, w3schools.com/php/php_forms.asp)