0

たとえば、このエンティティを持つ:

<?php

namespace Gitek\HotelBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Gitek\HotelBundle\Entity\Product
 *
 * @ORM\Table()
 * @ORM\Entity(repositoryClass="Gitek\HotelBundle\Entity\ProductRepository")
 */
class Product
{
    /**
     * @var integer $id
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string $name
     *
     * @ORM\Column(name="name", type="string", length=100)
     */
    private $name;

10 個の製品を連続して保存するフォームを作成する方法は? 「+」ボタンのあるフォームが必要で、動的に行を追加して、すべての製品を連続して送信します。

助けや手がかりはありますか?前もって感謝します

4

2 に答える 2

0

これは、作業プロセスを確認するための最小限のコードです。

しかし、基本的には、セッションに関するすべての情報を多次元配列として保存し、最終的にそれらを 1 つずつ最後のポイントに挿入することで、このようなタスクは解決されます。

于 2012-05-14T15:06:48.073 に答える
0

「追加」ボタンをクリックすると、Javascript(jQuery) を使用してフォーム要素をページに動的に追加できます。このようなもの:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title></title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>

    <script type="text/javascript">
        $(document).ready(function() {
            $('#btnAdd').click(function() {
                var num     = $('.clonedInput').length;
                var newNum  = new Number(num + 1);

                var newElem = $('#input' + num).clone().attr('id', 'input' + newNum);

                newElem.children(':first').attr('id', 'name' + newNum).attr('name', 'name' + newNum);
                $('#input' + num).after(newElem);
                $('#btnDel').attr('disabled','');

                if (newNum == 5)
                    $('#btnAdd').attr('disabled','disabled');
            });

            $('#btnDel').click(function() {
                var num = $('.clonedInput').length;

                $('#input' + num).remove();
                $('#btnAdd').attr('disabled','');

                if (num-1 == 1)
                    $('#btnDel').attr('disabled','disabled');
            });

            $('#btnDel').attr('disabled','disabled');
        });
    </script>
</head>

<body>

<form id="myForm">
    <div id="input1" style="margin-bottom:4px;" class="clonedInput">
        Name: <input type="text" name="name1" id="name1" />
    </div>

    <div>
        <input type="button" id="btnAdd" value="add another name" />
        <input type="button" id="btnDel" value="remove name" />
    </div>
</form>

</body>
</html>

参照
次に、フォームが投稿されると、$_POST配列をウォークスルーできます。

于 2012-05-14T15:09:43.483 に答える