我有使用foreach显示图像和输入的表单,并希望在表单提交上获取其值,因此我可以将其内存并保存到数据库但不知道如何才能执行此操作。到目前为止,我在表单提交上获得的唯一值是最后一个字段的值。这是我显示表单的代码:
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>">
<div class="row">
<div class="col-md-12 col-xs-12">
<?php
# Prepare the SELECT Query
$productimage = explode ("|", $productimage);
foreach ($productimage as $imgfile) {
echo '<div class="form-group">
<div class="col-md-8 col-sm-8 col-xs-12">
<div class="product-img">
<img class="img-thumbnail" src="../content/uploads/' . $imgfile . '" width="120" height="120" />
<input class="form-control" type="text" name="imgtitle">
<input type="hidden" name="imgurl" value="' . $imgfile . '">
</div>
</div>
</div>';
}
?>
<div class="form-group">
<div class="col-md-12 col-sm-12 col-xs-12">
<button type="submit" class="btn btn-primary" name="btn-saveimg">Save</button>
</div>
</div>
</div>
</div>
</form>
在表单提交上,我将使用以下代码获取POST值:
if ( isset($_POST['btn-saveimg']) ) {
$imgurlUpdate = $_POST['imgurl'];
$imgtitleUpdate = $_POST['imgtitle'];
$arr = array($imgurlUpdate,'#',$imgtitleUpdate);
print_r($arr);
}
在print_r上,我得到的唯一结果是表单的最后一个值。
Array ( [0] => image4.jpg [1] => # [2] => title4 )
我正在尝试使用implode实现类似这样的结果:
image1.jpg#title1|image2.jpg#title2|image3.jpg#title3|image4.jpg#title4
我可以保存到数据库中,例如我有4个图像。有什么想法吗?
答案 0 :(得分:1)
我认为问题出在您使用的输入标签中,您正在存储多个imgurl&amp; imgtitle。你应该将名称值存储在数组中。
'<div class="form-group">
<div class="col-md-8 col-sm-8 col-xs-12">
<div class="product-img">
<img class="img-thumbnail" src="../content/uploads/' . $imgfile . '" width="120" height="120" />
<input class="form-control" type="text" name="imgtitle[]">
<input type="hidden" name="imgurl[]" value="' . $imgfile . '">
</div>
</div>
</div>';'
当您获取php端获取值的值作为数组元素时。 我希望这会有所帮助。