【问题标题】:How to get user input to insert multiple records into database from table created with a for loop?如何获取用户输入以从使用 for 循环创建的表中将多条记录插入数据库?
【发布时间】:2016-11-17 19:20:55
【问题描述】:

我创建了一个表单,要求用户在所有字段中输入信息,然后提交表单。我的目标是获取用户输入并将其插入数据库的新记录中。我目前面临的挑战是,因为我在 PHP 中使用了 for 循环来创建表格/表单:

  1. 我无法访问来自 $_POST 的输入
  2. 不确定如何区分所有行及其输入(因为我使用循环来创建它们)。我在想一个数组...

Please see a screenshot of the form I am working with.

以下是我的提交按钮。

    if (isset($_POST['submit'])) {
    $date = date('m\/d\/Y');
    $ordnum = $_POST['cpOrderNumber'];
    $ponum = $_POST['cpPoNumber'] . $_POST['cpPoNumberF'];
    $palnum = $_POST['palnum'];
    $casecount = $_POST['casecount'];
    $cpsflot = $_POST['cpsflot'];
    $sscc = $_POST['sscc'];
    if(!empty($_POST['cpOrderNumber']) || !empty($_POST['cpPoNumber'])) {
        require_once('mydatabase.php');
        $query = "INSERT INTO ASN (date, ordnum, ponum, palnum, casecount, cpsflot, sscc ) 
                    VALUES ('$date', '$ordnum', '$ponum', '$palnum', '$casecount', '$cpsflot', '$sscc')";
        $insert = sqlsrv_query($dbc, $query);
        if( $insert === false ) {
            die('Could not connect to database');
        }
    }
    else {
        die('Please enter the appropriate information'); 
    }
  sqlsrv_close($dbc);
}

这就是我遇到困难的地方。我可以将 $date、$ordnum 和 $ponum 插入数据库,但 $palnum 不会。正如您从我评论的内容中看到的那样,我尝试使用数组。

   

 <?php
    for ($x = 1; $x < 25; $x++) {
         echo
             '<tr id="' .$x. '">
             <td style="font-size: 160%" name="palnum" id="pallet">' .$x. '</td>
             <td id="caseCount"><input type="number" name="casecount" id="inputText_Small" maxlength="2"/></td>
             <td id="hilltopLot"><input type="text" name="cpsflot" id="inputText_Order" value="" maxlength="10"/></td>
             <td id="sscc"><input type="number" name="sscc" id="inputText_Medd"  value="" maxlength="4"/></td>
             </tr>';
    $palnum[$x] = $x;
    //$palnum[$x] = 'palnum'.$x;
    //$palnum = $palnumx.$x;
    //$palnum1 = $palnum[1];
    }
    //echo count($palnumx);
    //echo $palnum[1];
    ?>

【问题讨论】:

  • 这可能就是为什么...$palnum = 'palnum'; 你需要像$palnum = $_POST['palnum']; 那样格式化它。另外请注意,您的文档在页面上应该只有一个 id,否则您的 DOM 无效,请考虑使用 class 为循环中的元素设置样式。
  • 当我看到这里有越来越多的问题......呃......我想你需要找到一个关于forms如何工作的教程
  • 对不起,我最初是按照您指定的方式进行的,但在发布问题之前我进行了一些试验。我已经编辑了那部分。

标签: php sql sql-server forms


【解决方案1】:

我想你正在寻找这个。虽然不是 100%。基本上,您可以使用括号命名输入,使其表现得像帖子中的数组。

<input name="recurringName[]" value="moo" />
<input name="recurringName[]" value="moo2" />

如果你这样做,在帖子中你可以通过这种方式访问​​数据

$_POST['recurringName'][0] == 'moo'
$_POST['recurringName'][1] == 'moo2'

我希望这会有所帮助!如果我没有清楚地理解你,请告诉我

【讨论】:

    猜你喜欢
    • 2023-04-03
    • 1970-01-01
    • 2016-08-17
    • 1970-01-01
    • 2013-05-09
    • 1970-01-01
    • 1970-01-01
    • 2017-10-05
    • 1970-01-01
    相关资源
    最近更新 更多