Получить имя и значение с помощью PHP

#php #arrays

#php #массивы

Вопрос:

У меня есть эта простая форма:

HTML:

 <input type="checkbox" name="product[]" value="20$" /> book
<input type="checkbox" name="product[]" value="30$" /> plane
  

PHP:

 
$product = $_POST['product'];
foreach($product as $value) {
    echo $value;
}
  

Примечание:
Пользователь может выбрать один или два… продукты.

Вопрос:
Я хочу знать, есть ли решение для получения name тоже, например, добавление класса ID или что-то в этом роде..

В принципе, я не могу получить name атрибут, потому что я не отправил его с формой.

Комментарии:

1. Примечание: для лучшего доступа используйте метку: <input id="book" ... /><label for="book">book</label>

2. Вы действительно отправили атрибут name. Это product[] . 🙂

3. Я имею в виду название каждого выбранного (самолет или книга)

Ответ №1:

Добавьте недостающую информацию в свои POST-параметры:

 <input type="checkbox" name="product[book]" value="20$" /> book
<input type="checkbox" name="product[plane]" value="30$" /> plane
  

Вы можете выполнить итерацию по нему следующим образом:

 foreach ($_POST['product'] as $name => $value) {
    // ...
}
  

Комментарии:

1. следует отметить, что первой переменной является ключ массива. 1

Ответ №2:

Вы можете использовать опцию, представленную elusive, но, похоже, в этом случае вы передаете цену от клиента к серверу. Это может позволить людям мошенничать. Они могли бы с небольшим взломом отправить другую (более низкую) цену. Если вы просто отправите ‘book’ и переопределите цену на сервере, это не будет проблемой.

Если вы выберете этот путь, вы можете просто поместить продукт (‘book’) в значение:

 <input type="checkbox" id="book" name="product[]" value="book" />
<label for="book">book</label>
<input type="checkbox" id="plane" name="product[]" value="plane" />
<label for="plane">plane</label>
  

Комментарии:

1. Да, но я тоже хочу значение (price) 🙂