【问题标题】:Probleme jquery and PHP with multiple submits in dialog在对话框中有多个提交的问题 jquery 和 PHP
【发布时间】:2013-03-08 02:33:14
【问题描述】:

好的评论我不能删除,它总是删除最后一个。

我的js:

  $(function () {          
        $( ".delete" ).click(function() {
            $( "#delete-confirm" ).dialog( "open" );
        });

        $( "#delete-confirm" ).dialog({
            autoOpen: false, modal: true, width: '600px', show: 'fade',
            buttons: {
                "Confimer": function() {

                    $( this ).dialog( "close" );
                    $('.form-comment').append('<input type="hidden" name="delete" />');
                    $(".form-comment").submit();
                },
                "Annuler": function() {
                    $( this ).dialog( "close" );
                }
            }
        });

    }); 

在 PHP 中:

<?php
 foreach ($commentManager->getList() as $comment) { ?>
     <form class="form-comment" method="post" style="display: inline;">
        <input type="hidden" name="id" value="<?php echo $comment['id']; ?>" />
      </form>
<?php } ?>

如果不将我的 jquery 代码放在 php 页面的中间,我如何提交具有良好 id 的表单?

【问题讨论】:

    标签: jquery forms jquery-ui submit modal-dialog


    【解决方案1】:

    我希望我正确理解您的问题,即您只想删除选定的评论。因此,您可以尝试以下方法:

    var goodId = '';
    $( ".delete" ).click(function() {
        goodId = $(this).attr('id');
        $( "#delete-confirm" ).dialog( "open" );
    });
    // and then later make these changes
    $('.form-comment-'+goodId).append('<input type="hidden" name="delete" />');
    $(".form-comment-"+goodId).submit();
    goodId = '';
    

    在你的 php 代码中:

    <?php
     foreach ($commentManager->getList() as $comment) { ?>
         <form class="form-comment-<?php echo $comment['id']; ?>" method="post" style="display: inline;">
            <input type="hidden" id="<?php echo $comment['id']; ?>" name="id" value="<?php echo $comment['id']; ?>" />
         </form>
    <?php } ?>
    

    设置 goodId 如果需要,可以使用 value 属性获取评论 id。

    【讨论】:

      【解决方案2】:

      我认为如果您对此提出 AJAX 请求,最好只获取当前点击的 DOM

      并为其分配attr-table-id,然后使用$(this).data('table-id');并通过AJAX将其发送到您的服务器

      如果您不想使用 AJAX ,请进行重定向而不是陷入表单提交问题,因为您提交的所有表单都带有 form-comment(Use window.location)

      希望对你有帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-21
        • 1970-01-01
        相关资源
        最近更新 更多