如何在PHP中针对MySQL插入查询函数的单个表单?


How do I target a single form for a MySQL insert query function in PHP?

我在一个页面上有三个不同的表单。每个表单的数据将被输入到不同的表中。对于我创建的第一个表,我使用以下if语句将数据插入到表中:

if ( $_SERVER['REQUEST_METHOD'] === 'POST' ) {
$band_name = $_POST['bandname'];
$band_website = $_POST['website'];
$band_descrip = $_POST['description'];
query(
    "INSERT INTO bands(bandname, website, description) VALUES(:bandname, :website, :description)",
    array('bandname' => $band_name, 'website' => $band_website, 'description' => $band_descrip),
    $conn
    );
} else {
$status = "Fill out the form";
}

我假设我需要创建三个不同版本的if语句,每个表单一个。我如何指定提交了哪张表格?

因为当您提交表单时,只提交表单标签中的数据,因此您可以通过使用某些东西来识别表单来检查哪种表单。我通常使用提交按钮名称来检查表单。您可以使用任何$_POST变量,只要您只将其用于一种形式。

<form method="post">
   <input type="text" name="form1_text" />
   <input type="submit" name="form1_submit" value="Submit" />
</form>
<form method="post">
   <input type="text" name="form2_text" />
   <input type="submit" name="form2_submit" value="Submit" />
</form>
<?php
   if(isset($_POST['form2_submit'])) {
      // Handle Form 2
   }else if(isset($_POST['form1_submit'])) {
      // Handle Form 1
   }
?>
关于浏览器应该如何处理表单的更多信息,你可以查看W3.org上的HTML文档- HTML文档中的表单。这解释了发送到服务器的数据以及如何选择/确定这些数据。