Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP代码不是';不允许通过我的表单发送多个输入值_Php_Html - Fatal编程技术网

PHP代码不是';不允许通过我的表单发送多个输入值

PHP代码不是';不允许通过我的表单发送多个输入值,php,html,Php,Html,我正在用我构建的应用程序撞墙。我是PHP新手(不到一个月),在导师的帮助下,我写了一个非常复杂的表单。由于保密协议,我不能将我的全部代码发送到这里作为示例。具体来说,我遇到的问题是,我的表单无法将多个值发送到两个不同的输入“插槽”。它将向数据库发送一个单一的输入值,但它应该注册不同的输入值 <?php { foreach($results['tags'] as $part){ if ($part['category'] == "Part"){

我正在用我构建的应用程序撞墙。我是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
    }
      }

         }

            ?>

我的导师建议将此作为答案,但我不确定他的意思:
“似乎[val1/2]需要绑定到产品而不是事务。现在,它不在“标记”部分中。这有意义吗?”

您试图用
$
命名您的VAR。我想您希望在那里输出php值,因此将字符串更改为如下所示:

<td><input type="text" name="<?= $product['Val1'] ?>"/></td>
“$”表示PHP变量,因此它需要位于PHP标记内。还记得用引号(“)括起回显值


圣诞快乐

因为,没有提供太多的数据。我是从我这边假设的。希望能有所帮助

将值放入
value
属性中。以数组类型命名。例如
Slot1[]
Slot2[]
。。 因为,
Val1
可能有多个值,所以名称为数组类型

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

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

这是由于


函数sendData(){
var inputs=document.getElementById('device-table').getElementsByTagName('input'),
数据=[],
名称,val1,val2;
对于(变量i=0;i1){
data.push({name:name[0],val1:inputs[i].value});
}
否则{
data.push({name:name[0],val2:inputs[i].value});
}
}
}
setTimeout(函数(){
sendData();
},30000);
}
sendData();

除非你真的想让你的两个字段名用字符命名,
$
p
r
o
,等等,否则你可能想用
…在新版本的php上,似乎长标签是必须的,所以它需要
名称=”“
和其他输入、类等上的相同。
htmlspecialchars()
可能也应该在数据周围使用,因为您将回显它。@SheaPrice如果您是php新手,这可能会有一些用处。祝你好运如果您的php设置不支持短标记,那么这可能就是原因。谢谢大家,我要到下周才能测试它,我会在解决问题后进行更新。我已经尝试过了,但我的代码中出现了一个错误(在我尝试实现这一点之前,它是完美的)。*在www.index.php第xx行中为foreach()提供的参数无效。好吧,这意味着foreach($something)中有一些东西{
你完全正确…知道如何解决这个问题吗?我已经搞乱它两天了,我什么都没做。你能
var_dump
变量
$results
吗?是的@switcher。变量$results是正确的。它解析一个json字符串。我想知道问题是否可能在代码的另一边(推送我信息的后端)以及它是如何接收这些输入的?这是一个合理的问题吗?我相信这可能是我想要的。我将在下周进行测试并更新。谢谢。这些都不适用于我,并不幸地破坏了我的工作代码。
<?

$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.   
}
?>
  <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();