html文本输入发送php变量以及用户的输入

时间:2016-10-04 13:45:40

标签: php html forms

我有一个创建表单的while循环,我希望用户做的是在他们想要的项目旁边输入一个数字,提交后它将提交他们输入的数字加上我提供的变量(没有他们看到变量)。这可能吗? php循环遍历文本文件,输出每一行作为用户的选项。

while(($line = fgets($filehandle)) !== false){
    $itemParts = explode(" - ",$line);
    $item = $itemParts[0];
    $price = $itemParts[1];
    echo "<input type='text' name='hardware[]' value='{$item}-|-{$price}'>£".$price." ".$item."<br />";
}

在结果页面上,我循环遍历hardware []数组,向用户显示他们的选择以及更新数据库。

foreach ($_POST['hardware'] as $itemWanted){
    $itemParts = explode('-|-',$itemWanted);
    $item = $itemParts[0];
    $cost = $itemParts[1];
    echo $item.' £'.$cost.'<br />';
    $total += $cost;
    $allHardware .= "**".$item." - GBP ".$cost;
}

我可能会以错误的方式解决这个问题,但有没有人知道这是否可能存在未知数量的文本文件和项目?我目前的工作方式是有一个复选框而不是文本框,一切正常,但现在我需要用户选择他们需要的金额。

while(($line = fgets($filehandle)) !== false){
    $itemParts = explode(" - ",$line);
    $item = $itemParts[0];
    $price = $itemParts[1];
    echo "<input type='checkbox' name='hardware[]' value='{$item}-|-{$price}'><font size='2'>£".$price." ".$item."</font><br />";
}

提前感谢您提供任何帮助

1 个答案:

答案 0 :(得分:1)

您应该尝试使用输入名称作为命名数组,这使得使用PHP循环更加有趣:

  <input name='hardware[0][item]' value='{$item}'>
  <input type='hidden' name='hardware[0][price]' value='{$price}'>
  <input type='hidden' name='hardware[0][something]' value='{$something}'>
你的php $_POST中的

将是一个等同于:

的数组
 $_POST['hardware'] = array(
       0 => array(
            'item' => $item,
            'price' => $price,
            'something' => $something,
       ),
 )

如果你使用多行,你应该用迭代器替换0 希望它有所帮助:)