Как получить несколько полей Multi Values - PullRequest
0 голосов
/ 13 декабря 2010

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

<form>
    <select name="items[]">
    <option value="clothes">Clothes</option>
    <option value="shoes">Shoes</option>
    </select>
    <input type="text" name="color[]" />

    <select name="items[]">
    <option value="clothes">Clothes</option>
    <option value="shoes">Shoes</option>
    </select>
    <input type="text" name="color[]" />
</form>

, и я знаю, как получить только одно поле, как это: name = "color []" Я могу получить результат с помощью:

while(list($key,$value) = each($_POST['color'])){

if(!empty($value)){

echo $_POST['color'][$key];
echo "<br />" ;

}}

но теперь я хочу получить все значения "выбрать элементы и цвет"

я сделал этот код здесь и получил все результаты, но он не связан друг с другом !!!

вот так: одежда-обувь красно-синяя

я хочу вот так: одежда-обувь красная-синяя

это код, который я сделал, но я не удовлетворен

while(list($key,$value) = each($_POST['input'])){

if(!empty($value)){

echo $_POST['input'][$key];
echo "<br />" ;

}}

while(list($key,$value) = each($_POST['items'])){

if(!empty($value)){

echo $_POST['items'][$key];
echo "<br />" ;

}}

кто-нибудь может мне помочь, пожалуйста:)

спасибо,

Ответы [ 2 ]

1 голос
/ 13 декабря 2010

У вас есть два массива:

$items = array(0 => 'clothes', 1 => 'shoes')
$color = array(0 => 'blue', 1 => 'red')

Последовательный цикл по обоим массивам, конечно, даст вам «одежду, обувь, синий, красный».Поскольку индекс 0 $items соответствует индексу 0 $color, вам необходимо получить доступ к соответствующему индексу в обоих массивах одновременно:

for ($i = 0; $i < count($items); $i++) {
    echo $items[$i] . ' - ' . $color[$i];
}
1 голос
/ 13 декабря 2010

Измените ваши имена выбора и ввода, чтобы они были такими:

<select name="items[0][type]">
<input name="items[0][color]">

<select name="items[1][type]">
<input name="items[1][color]">

Затем вы можете выполнить итерацию каждой пары вместе, используя

foreach ($_POST['items'] as $item) {
    $type = $item['type'];
    $color = $item['color'];
}

Редактировать Забыли добавитьиндекс для каждой пары, чтобы сгруппировать их

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...