0

スタック上の同様の投稿をいくつか見ましたが、答えも解決策も見つかりません。追加が発生した後、フォームを送信すると、var が空になります。入力フィールドを追加した後、htmlをチェックしましたが、良さそうです:

<input type="hidden" name="imgdelete[]" value="5">

助けてください、これに 3 時間以上費やしました。ありがとうございました

Jクエリ

$('a.delete-img').bind('click',function()
{
    var imgid = $(this).attr('id');

    // add hidden field to let php know that this image was deleted
    $('<input>').attr({
        type: 'hidden',
        name: 'imgdelete[]',
        id: imgid,
        value: imgid
    }).prependTo('.tablepics tr:last');
});

HTML

<html>
<head></head>
<body>
<form action="" method="post" id="editCarForm" novalidate="novalidate" enctype="multipart/form-data">
<table border="0" cellpadding="0" cellspacing="0" class="tablepics" id="id-form">
        {foreach from=$CARIMGS item=carimg}
        <tr class="car-row">
        <td id="{$carimg.imgid}">
            <a class="fancybox" href="../{$carimg.img}">
                <img width="{$THUMB_WIDTH}" alt=""  src="../{$carimg.thumb}"/></img>
            </a>
        </td>
        <td style="padding:5px" id="{$carimg.imgid}">
            <input type="text" id="imgorder" name="imgorder[{$carimg.imgid}]" value="{$carimg.order}" size="2" maxlength="2" />
            <br><br>
            <a href="javascript:void(0);" id="{$carimg.imgid}" class="delete-img">delete</a><br>
        </td>
        </tr>
        {/foreach}      
        <tr>
        <br>
        </tr>
        <tr>
            <th>Images: </th>
            <td><input name="upload[]" type="file" accept="image/*" multiple="multiple" /></td>
        </tr>

        <tr>
            <th>&nbsp;</th>
            <td valign="top"> //this would be last one
                <input type="submit" value="" class="form-submit" />
                <input type="reset" value="" class="form-reset"  />
            </td>
        </tr>
</table>
</form>
</body>
</html>
4

1 に答える 1

1

これを試して:

$('a.delete-img').bind('click',function()
{
    var imgid = $(this).attr('id');

    // add hidden field to let php know that this image was deleted
    $('<input>').attr({
        type: 'hidden',
        name: 'imgdelete[]',
        id: imgid,
        value: imgid
    }).prependTo('#editCarForm');
});

これにより、隠しフィールドがテーブルの外側のフォームに挿入されます。<input>の直接の子として要素を持っていたため、コードは無効な DOM を作成していましたが<tr>、これは許可されていません。

于 2013-08-29T18:52:05.897 に答える