PHP代码不允许通过我的表单

时间:2015-12-24 17:26:42

标签: php html html5

我正在使用我构建的应用程序进入墙。我是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]需要与产品而不是交易挂钩。现在,它不在”标签“部分内。这有意义吗?”

4 个答案:

答案 0 :(得分:1)

您正尝试使用$命名您的变种。我想你想在那里输出php值,所以把你的字符串改成这样:

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

答案 1 :(得分:1)

&#34; $&#34;表示PHP变量,因此它需要在php标记内。还记得用引号(&#34;)包围echo值。

<?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
        }
    }
?>

答案 2 :(得分:1)

答案是我需要迭代它们,因为它们不是数组并将它们附加到字符串中。

这要归功于@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();

答案 3 :(得分:0)

圣诞快乐

因为,提供的数据并不多。我假装在我身边。希望它有所帮助。

将值放在value属性中。将名称命名为数组类型。与Slot1[]Slot2[]相似.. 因为,Val1可能有多个值,所以name是数组类型。

<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.   
}
?>