无法使用php-echo在2种形式之间传输数据

时间:2018-11-22 16:14:37

标签: php html forms pdo

我正在以html形式进行更新功能。我正在通过echo从一种形式向另一种形式发送数据以进行更新。但是我无法从第一种形式发送的数据中填充其他信息。

字段ID文本框为空。

这是我的代码:

从1开始发送密钥:

  <tr>
    <td style='width:150px;border:1px solid grey;'><?= $row['field_id'] ?></td>
    <td style='width:150px;border:1px solid grey;'><?= $row['description'] ?></td>
    <td style='width:150px;border:1px solid grey;'><?= $row['corner_points'] ?></td>
    <td style='width:150px;border:1px solid grey;'><?= $row['notes'] ?></td>
    <td style='width:150px;border:1px solid grey;'><a target="_blank" href="Edit/edit-field.php?field_id=<?php echo $row['field_id'];?>">Edit</a></td>
  </tr>

接收数据edit-field.php:

<?php

    if(isset($GET["field_id"]))    
      {
       $field_id = $GET["field_id"]; 
      }

     try {
            $stmt = $conn->prepare("SELECT field_id, description, corner_points, notes FROM fields where field_id = $field_id");
            $stmt->execute();

            $stmt->setFetchMode(PDO::FETCH_ASSOC);
            $result = $stmt->fetchAll();
        }

        catch(PDOException $e) {
        echo "Error: " . $e->getMessage();
        }
        ?>

   <form action="" method="post" class="needs-validation" novalidate enctype="multipart/form-data"> 
    <h6> Field </h6>
  <div class="form-row">
    <div class="col-md-4 mb-3">
      <label for="validationCustom01">Field ID</label>
      <input type="number" class="form-control" name="field_id" id="field_id" value="<?php echo $result["field_id"];?>">
      </div>
   </div>

  <button class="btn btn-primary btn-sm" name="submit1" type="submit">Update Records</button>
</form>

2 个答案:

答案 0 :(得分:1)

在edit-field.php中,通过URL传递的参数变量为$ _GET而不是$ GET。

将该文件的开头更改为:

if(isset($_GET["field_id"])) {
   $field_id = $_GET["field_id"]; 
}

答案 1 :(得分:0)

您是否不必执行循环来获取结果?就像这个例子:

    <?php
// $pdo est un objet PDO
try{
    $stmt = $pdo->query('SELECT * FROM table');
    $rows = $stmt->fetchAll();
}
catch(Exception $e)
{
    exit('<b>Catched exception at line '. $e->getLine() .' (code : '. $e->getCode() .') :</b> '. $e->getMessage());
}
foreach($rows as $row) {
    var_dump($row);
    echo '<br />';
}