一尘不染

获取所有通过POST发送的变量?

php

我需要插入所有随发布发送的变量,它们是每个代表用户的复选框。

如果我使用GET,将会得到如下信息:

?19=on&25=on&30=on

我需要在数据库中插入变量。

如何获取所有通过POST发送的变量?用逗号或其他东西隔开的数组或值?


阅读 260

收藏
2020-05-29

共1个答案

一尘不染

该变量$_POST将自动填充。

尝试var_dump($_POST);查看内容。

您可以这样访问各个值: echo $_POST["name"];

当然,这假设您的表单使用的是典型的表单编码(即 enctype=”multipart/form-data”

如果您的帖子数据采用其他格式(例如JSON或XML),则可以执行以下操作:

$post = file_get_contents('php://input');

并且$post将包含原始数据。

假设您使用的是标准$_POST变量,则可以测试是否选中了以下复选框:

if(isset($_POST['myCheckbox']) && $_POST['myCheckbox'] == 'Yes')
{
     ...
}

如果您有一系列复选框(例如

<form action="myscript.php" method="post">
  <input type="checkbox" name="myCheckbox[]" value="A" />val1<br />
  <input type="checkbox" name="myCheckbox[]" value="B" />val2<br />
  <input type="checkbox" name="myCheckbox[]" value="C" />val3<br />
  <input type="checkbox" name="myCheckbox[]" value="D" />val4<br />
  <input type="checkbox" name="myCheckbox[]" value="E" />val5
  <input type="submit" name="Submit" value="Submit" />
</form>

使用[ ]在复选框名称表示所选择的值将通过PHP脚本作为阵列进行访问。在这种情况下,$_POST['myCheckbox']将不会返回单个字符串,而是将返回一个由选中的复选框的所有值组成的数组。

例如,如果我选中所有复选框,$_POST['myCheckbox']则将是一个包含以下内容的数组:{A, B, C, D, E}。这是一个如何检索值数组并显示它们的示例:

  $myboxes = $_POST['myCheckbox'];
  if(empty($myboxes))
  {
    echo("You didn't select any boxes.");
  }
  else
  {
    $i = count($myboxes);
    echo("You selected $i box(es): <br>");
    for($j = 0; $j < $i; $j++)
    {
      echo $myboxes[$j] . "<br>";
    }
  }
2020-05-29