我的page1有一个简单的表单,其中包含名称和带复选框的项目列表。我正在通过帖子将数据传递给Page2。当我回显变量$itemPush
时,它会显示所选项目的确切列表。但问题是当我将相同的变量添加到sql查询中但它没有将整个项目推入表中时,而是只推送已选择的最终项目。请帮助我的代码。
$name = $_POST['name'];
$items = $_POST['items'];
foreach($items as $selectedItems){
$itemsPush = 'http://www.example.com/'.$selectedItems.',';
echo $itemsPush;
}
$sql = "INSERT INTO pages (name, itemsPush) VALUES('$name', '$itemsPush')";
答案 0 :(得分:0)
使用以下代码
foreach($items as $selectedItems){
$itemsPush = 'http://www.example.com/'.$selectedItems.',';
echo $itemsPush;
$sql = "INSERT INTO pages (name, itemsPush) VALUES('$name', '$itemsPush')";
}
答案 1 :(得分:0)
您需要在添加到DB之前连接结果,否则它将始终添加最后一项。如下所示
$name = $_POST['name'];
$items = $_POST['items'];
$itemsPush = '';
foreach($items as $selectedItems){
$itemsPush .= 'http://www.example.com/'.$selectedItems.',';
echo $itemsPush;
}
$sql = "INSERT INTO pages (name, itemsPush) VALUES('$name', '$itemsPush')";
答案 2 :(得分:0)
您已将$ itemsPush定义为变量,因此对于每个循环,它都被最新值覆盖,因此在循环结束时只会将lasy值存储在其中。
将$ itemsPush定义为类似
的数组 $itemsPush[] = 'http://www.example.com/'.$selectedItems.',';
然后最后将数组编码为
$items = json_encode($itemsPush);
然后插入如下 -
$sql = "INSERT INTO pages (name, itemsPush) VALUES('$name', '$items')";
答案 3 :(得分:0)
$itemsPush
只是一个变量。因此,当循环结束时,它具有$items
数组中的最后一个值。因此,如果您希望将$items
数组den的所有值声明为$itemsPush
作为数组并继续将值存储在循环中。
while($items as $selectedItems){
$itemsPush[] = 'http://www.example.com/'.$selectedItems.',';
}
现在您可以按照您想要的方式使用$itemsPush[]
。
答案 4 :(得分:0)
你能试试吗,
$itemsPush = '';
foreach($items as $selectedItems){
$itemsPush .= 'http://www.example.com/'.$selectedItems.',';
echo $itemsPush;
}
$itemsPush = serialize($itemsPush);
$sql = "INSERT INTO pages (name, itemsPush) VALUES('$name', '$itemsPush')";