PHP-код не позволяет отправлять несколько входных значений через мою форму

Я бегу в стену с приложением, которое я создал. Я новичок в PHP (менее 1 месяца), и я написал очень сложную форму с помощью наставника. Из-за соглашения о конфиденциальности я не могу отправить весь код здесь для примера. В частности, проблема, с которой я сталкиваюсь, заключается в том, что моя форма не может отправлять несколько значений в два разных «слота» ввода. Он отправит уникальное входное значение в базу данных, но оно должно регистрировать различные введенные значения.

<?php { foreach($results['tags'] as $part){ if ($part['category'] == "Part"){ ?> <tr> <td><?= $part['Part']; ?></td> <td class="text-center"><?= $product['Amount']; ?></td> <td><input type="text" name=$product['Val1'] /></td> <td><input type="text" name=$product['Val2'] /></td> </tr> <?php } } } ?> 

Мой наставник предложил это как ответ, но я не уверен, что он имеет в виду: «Кажется, что [val1 / 2] необходимо привязать к продукту, а не транзакции. Сейчас это не внутри раздела« теги ». Имеет ли это смысл?"

Вы пытаетесь назвать свои вары с помощью $ . Я предполагаю, что вы хотите вывести значения php там, поэтому измените строку так, чтобы она выглядела так:

 <td><input type="text" name="<?= $product['Val1'] ?>"/></td> 

«$» представляет переменную PHP и, следовательно, она должна быть внутри тега php. Также не забудьте включить значение эха в кавычки (").

 <?php foreach($results['tags'] as $part) { if ($part['category'] == "Part") { ?> <tr> <td><?= $part['Part']; ?></td> <td class="text-center"><?= $product['Amount']; ?></td> <td><input type="text" name="<?= $product['Val1']; ?>" /></td> <td><input type="text" name="<?= $product['Val2']; ?>" /></td> </tr> <?php } } ?> 

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

Это было достигнуто благодаря @SonnY

  <script type="text/javascript"> function sendData() { var inputs = document.getElementById('equipment-table').getElementsByTagName('input'), data = [], name, val1, val2; for (var i = 0; i < inputs.length; i++) { if ( inputs[i].type === 'submit') { continue; } if ( inputs[i].value ) { name = inputs[i].name.split('-val'); val1 = inputs[i].name.split('val1'); if (val1.length > 1) { data.push({name: name[0], val1: inputs[i].value}); } else { data.push({name: name[0], val2: inputs[i].value}); } } } window.setTimeout(function() { sendData(); },30000); } sendData(); 

счастливого Рождества

Поскольку, не так много данных. Я принимаю с моей стороны. Надеюсь, поможет.

Поместите значение в атрибут value . Дайте имя как тип массива. Как Slot1[] , Slot2[] .. Так как для Val1 может быть больше 1 значения, поэтому имя имеет тип массива.

 <form action='SubmitSomePage.php' method='POST'> <?php { foreach($results['tags'] as $part) { if ($part['category'] == "Part") {?> <tr> <td><?= $part['Part']; ?></td> <td class="text-center"><?= $product['Amount']; ?></td> <td><input type="text" value="<?=$product['Val1'];?>" name='Slot1[]'/></td> <td><input type="text" value="<?= $product['Val2'];?>" name='Slot2[]' /></td> </tr> <?php } } } ?> . . <input type='submit' value='Submit Details'> </form> 

SubmitSomePage.php

 <? $slot1 = $_POST['Slot1']; $slot2 = $_POST['Slot2']; $TotalSlot1 = sizeof($slot1); for($i = 0; $i<$TotalSlot1;$i++) { $slot1Value = $slot1[$i]; $slot2Value = $slot2[$i]; $Query = "INSERT INTO TableName Set Val1='$slot1Value', Val2='$slot2Value'"; //Execute Query Here. } ?>