在表单提交中内爆所有输入值

时间:2017-06-01 00:27:04

标签: php forms

我有使用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个图像。有什么想法吗?

1 个答案:

答案 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端获取值的值作为数组元素时。 我希望这会有所帮助。