Как проанализировать данные нескольких элементов с несколькими входами для каждого в форме HTML? - PullRequest
0 голосов
/ 11 сентября 2018

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

<form>
    <div>
        <h1>Item 1</h1>
        <input name="item_title[]" value="Any 1">
        <input name="phone[]" placeholder="phone number">
        <input name="phone[]" placeholder="phone number">
        <input name="phone[]" placeholder="phone number">
    </div>
    <div>
        <h1>Item 1</h1>
        <input name="item_title[]" value="Any 2">
        <input name="phone[]" placeholder="phone number">
        <input name="phone[]" placeholder="phone number">
        <input name="phone[]" placeholder="phone number">
    </div>
    <div>
        <h1>Item 3</h1>
        <input name="item_title[]" value="Any 3">
        <input name="phone[]" placeholder="phone number">
        <input name="phone[]" placeholder="phone number">
        <input name="phone[]" placeholder="phone number">
    </div>
    ...
</form>

На стороне сервера, в PHP, например, я могу просмотреть item_title [] , чтобы узнать каждый элемент:

foreach($_POST['item_title'] as $key => $value){
    $item_order = $key; // or $key + 1
    $item_title = $value;
}

моя проблема в том, что я получаю массив item_title с 3 элементами и массив phone , в котором будет 9 элементов, но я действительно хочу получить:

item_title: phone1, phone2, phone3 // 1
item_title: phone1, phone2, phone3 // 2
item_title: phone1, phone2, phone3 // 3

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

Надеюсь, моя идея ясна: /

Спасибо!

Ответы [ 3 ]

0 голосов
/ 11 сентября 2018

Вы можете использовать seelct2 , отметьте опцию множественного выбора .Для вставки нескольких значений.

0 голосов
/ 12 сентября 2018

Если вы можете индексировать свои входные данные, вы можете использовать многомерные массивы:

<input name="item_title[0]" value="Any 1">
<input name="phone[0][]" placeholder="phone number">
<input name="phone[0][]" placeholder="phone number">
<input name="phone[0][]" placeholder="phone number">

и обрабатывать их в php:

foreach($_POST['item_title'] as $key => $value){
    $item_title = $value;
    // Output formatted as in your example, but you can loop the array
    echo $item_title . ': ' . implode(',', $_POST['phone'][$key]);
}

Надеюсь, это поможет

0 голосов
/ 11 сентября 2018

Решение состоит в том, что вы создаете отдельные имена телефонов, как это:

<div>
    <h1>Item 2</h1>
    <input name="item_title[]" value="Any 2">
    <input name="phone1[]" placeholder="phone number">
    <input name="phone2[]" placeholder="phone number">
    <input name="phone3[]" placeholder="phone number">
</div>
<div>
    <h1>Item 1</h1>
    <input name="item_title[]" value="Any 1">
    <input name="phone1[]" placeholder="phone number">
    <input name="phone2[]" placeholder="phone number">
    <input name="phone3[]" placeholder="phone number">
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...