在具有变量ID的php中捕获POST数据

时间:2014-08-22 17:27:35

标签: php

我从数据库创建一个表单,输入id可能是1-9,1,2,5,8等IE用现在的方式,我无法确定是什么数字将是,除非我从数字1迭代到数据库中的最终菜单项数...我认为从编码的角度来看这不是最佳的。

我有两个文件。 File1将从数据库中获取菜单项的列表编号并创建列表。我的代码的浓缩版本如下,请记住我已经浓缩了很多无用的东西;

File1.php     

    $menuArray = openMenu(1);
    $return = "<div id='menu'><form method='post' action='file2.php'><input type='submit' name='submit' value='Commit Order' /><table class='tableinfo'>";
    $i=1;
    foreach($menuArray as $recordNum => $record)
    {
            if ($record['available'] > 0)
            {
                    $thisClass='available';
            } else{
                    $thisClass='unavailable';
            }

            $return.="<tr class='$thisClass'>
                            <td>$record[itemid]</td>
                            <td><label for='$record[itemid]'>$record[name]</label></td>
                            <td><button type='button' id='itemid-$record[itemid]' class='subtract'>-</button><input class='itemadder' id='itemid-$record[itemid]' type='number' min='0' value='0' /><button id='itemid-$record[itemid]' class='addition' type='button'>+</button></td>
                    </tr>";
    }
    $return.="</table></form></div>";

    return $return;

File2.php     我不知道如何编码:(

是否有人能够了解最佳方法? 我只需要一种能够在发布时查看id有什么值的方法。

目前正在使用jQuery;这会是使用jquery做得最好的吗?

2 个答案:

答案 0 :(得分:0)

呈现上述输入的脚本File1.php确实知道所呈现的内容。那么,如果它还将一个呈现的表单元素名称列表放入会话中以供以后在file2.php中使用:

一开始:

 $_SESSION['formids'] = array();

在循环中:

 ....
 $_SESSION['formids'][] = "itemid-" . $record[itemid];

file2.php

 $sendItems = $_SESSION['formids'];
 ...

 foreach ( $sendItems as $itemId )
 {
      $val = empty($_POST[$itemId]) ? null : $_POST[$itemId];

      if ( isset($val) )
 ...

答案 1 :(得分:0)

假设我理解正确,最好的方法就是拥有一系列输入。

你应该尝试为你的HTML输出实现的代码需要是这样的:

<input type="text" name="number[1]" value="" />
<input type="text" name="number[3]" value="" />
<input type="text" name="number[5]" value="" />

现在您知道在PHP中提交表单之后:

foreach($_POST['number'] as $id => $value){
    echo 'The value for ID #' . $id . ' is ' . $value; 
}