【问题标题】:How to POST an array with PHP server side [duplicate]如何使用 PHP 服务器端发布数组 [重复]
【发布时间】:2014-07-01 21:03:14
【问题描述】:

我正在尝试将发布的数组上传到数据库表中。用户从表单中写入应该上传到数据库的文本。我已经阅读并理解的是,我应该像这样创建数组:

<li> <input type='checkbox' name='R[]'  id='R[]'> <label>"+ userInput + "</label> </li>

并且用户创建的每个元素都将变为 R[0]、R[1]、R[2]..... 等等......

我的问题是,如何在服务器端读取这个数组?我如何从服务器端知道数组中有多少元素?

在服务器端我会做这样的插入:

$sql="INSERT INTO $tbl_name (R) VALUES('$R1');";
$sql2="INSERT INTO $tbl_name (R) VALUES('$R2');";

如果它不是一个数组,我会像这样简单地定义 R1 和 R2:

$R1=$_POST["R1"]; 
$R2=$_POST["R2"]; 

但我不知道如何管理数组。

谢谢!

【问题讨论】:

标签: php arrays database post


【解决方案1】:

如何在服务器端读取这个数组?

就像任何数组一样。

echo $_POST['R'][0]; // get first element in that array
echo $_POST['R'][2]; // get third element in that array

我如何从服务器端知道数组中有多少元素?

就像使用任何数组一样。通过使用count()

echo count($_POST['R']);

但是如何循环遍历元素?因为我想把它们都发过来

就像你对任何数组一样。使用循环。

foreach ($_POST['R'] as $r) {
    // do something
    // echo $r;
}

仅供参考,输入元素的 ID 属性不需要数组语法。但是你确实需要确保它是独一无二的。

【讨论】:

  • 但是如何循环遍历元素?因为我想把它们都贴出来……
  • 我回答的重点是告诉你这只是一个普通的数组。这里没有什么特别的。请参阅我更新的答案以了解如何遍历此数组。
  • 好的,我明白了...所以我只需这样做 foreach ($_POST['R'] as $r) { $sql3="INSERT INTO REG (ID_User, Reg) VALUES( '$userid','$r');"; $tab= mysql_query($sql3, $dbh) or die ("error"); } 这样所有的元素都会被添加到数据库中
  • 当然。如果您愿意,您甚至可以在一个查询中完成。
  • 我收到两个错误:“未定义的索引:R”、“为 foreach() 提供的参数无效”
猜你喜欢
  • 2012-11-15
  • 2016-02-27
  • 2014-07-17
  • 2017-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-07
  • 1970-01-01
相关资源
最近更新 更多