Вставка нескольких значений в форму для отношения один ко многим - PullRequest
0 голосов
/ 10 мая 2018

У меня есть две таблицы:

Предметы
- itemNumber (PK)
- название
- предмет

Штрих-коды
- barcodeNumber (PK)
- дата добавлена ​​
- itemNumber (FK)

У меня есть форма для чтения информации от пользователя, но я хочу, чтобы пользователь мог вставлять столько же штрих-кодов для каждого элемента в одной форме. Как я могу сделать это с помощью PHP и HTML?

Я пытаюсь получить кнопку для отправки первого штрих-кода, но как сделать так, чтобы мое текстовое поле было чистым, и запросить второе, третье и т. Д. Я также думал о том, чтобы это работало, пока пользователь не нажмет на кнопка "Готово", чтобы запросить другой элемент.

Пожалуйста, дайте мне знать, если потребуется более подробная информация.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

если вам нужно отправить много значений любого типа через одну форму, вы можете создать такую ​​форму

Вид сбоку

<form method="post" action="../myscript.php">
     <input type="hidden" name="item_id" value="1T3M_1D_1">
     <!--let's say you are sending the item_id as a hiden field-->
     <!--I will use you have the bardoces already saved to the database and
         In your form u want to display the "available" ones-->
     <--Maybe a foreach loop to create the input fields-->

     <input type="checkbox" value="BARCODE_1" name="barcodes[]">
     <input type="checkbox" value="BARCODE_2" name="barcodes[]">
     <input type="submit">
</form>

PHP сторона

Здесь мы находимся по адресу myscript.php, где вы обрабатываете свои входные данные. Допустим, вы выбрали оба доступных штрих-кода в форме

<?php
    $itemId = $_POST['item_id'];
    $barcodes = $_POST['barcodes'];
    //this barcode as on the view had the [] at the end of the name
    //it's an array so..
    foreach ($barcodes as $item){
        //do whatever you need for each barcode
    }

Надеюсь, мой ответ поможет вам.

0 голосов
/ 10 мая 2018

Вы можете отправить массив штрих-кодов, например: barCodeId[]=1&barCodeId[]=2&barCodeId[]=3

Ваша форма будет выглядеть примерно так

<form action="/that-post-url" method="POST">
  <input name="barCodeId[]" value="1" />
  <input name="barCodeId[]" value="2" />
  <input name="barCodeId[]" value="3" />
  <button type="submit">Submit</button>
</form> 

Тогда вы могли бы сделать пакетную вставку в зависимости от того, что вы используете в бэкэнде, Laravel? Обычный php mysql?

INSERT INTO table_name (field_1, field_2, field_3) VALUES(1,2,3),(4,5,6),(7,8,9);

(1,2,3) matches nubmer of fields in insert

...