使用Ajax捕获动态php循环ID值以进行发布

时间:2018-08-14 11:04:33

标签: php jquery ajax

如何从隐藏的输入中捕获ID总计:

                           <?php
        foreach ($decodeMessages as $messages) {
                print  "
             <div class='row clearfix js-sweetalert'>
                                <div class='col-sm-12'>
                                <form action='' mehtod='POST'>
                                <div class='card message-page'>
                                    <div class='header'>
                                        <h2>
                                           From: " . $messages['Name'] .
                                           "<small>
                                                Email:" . $messages['Email']
                                            ."</small>
                                        </h2>
                                        <ul class='header-dropdown m-r--5'>
                                            <li>
                                            <input type='hidden' id='mtotal' value='".$messages['messageTotal']."' >
                                                <button type='button' onclick='showCancelMessage();' name='".$messages['messageTotal']."' id='".$messages['messageTotal']."' class='btn btn-default waves-effect m-r-20' data-type='cancel'><i class='fa fa-trash-o'></i></button>
                                            </li>
                                        </ul>
                                    </div>
                                    </form>
                                    <div class='body'>";
                                            $iv = chr(0x0) . chr(0x0) . chr(0x0);
                                            print openssl_decrypt(base64_decode($messages['Message']), 'aes-256-cbc', $messages['toUser'], OPENSSL_RAW_DATA, $iv);
                                   print "</div>
                                </div>
                            </div>
                        </div>
             ";
         }

        ?>

到目前为止,我已经尝试过:

   var datastring = $("#mtotal").val();
    $.ajax({
        url: "",
        type: "POST",
        data: {
            mID: "mID="+datastring
        },
        dataType: "html",
        success: function () {
            swal("Done!", "Message succesfully deleted!"+datastring, "success");
        },
        error: function (xhr, ajaxOptions, thrownError) {
            swal("Error deleting!", "Please try again", "error");
        }
    });

我在完成中添加了datastring,以查看它是否从按下按钮的div中选择了正确的ID。是43,它输出40

循环图片loop image

我的问题是:我如何从隐藏的输入中捕获动态总数字并打印该div上的“提交”按钮提交的特定数字?

我如何在同一页面上使用PHP处理该帖子

if (isset($_POST['mID'])) {} // that does not work

非常感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

您正在foreach循环中创建ID为“ mtotal”的多个隐藏输入。您必须为每个隐藏的输入赋予唯一的ID,也许基于循环索引/键:

foreach ($decodeMessages as $key => $messages) {

并且:

<input type='hidden' id='mtotal_" . $key ."' value='".$messages['messageTotal']."' >

您还应该将此键作为数据属性添加到相应的按钮上,如下所示:

<button class='cancel-button' type='button' data-key='".$key."'><i class='fa fa-trash-o'></i></button>

此外,最好像上面一样为您的“取消”按钮使用一个类,然后在您的javascript文件中添加点击处理程序。您可以从按钮获取data-key属性,然后选择隐藏的输入,如下所示:

$('.cancel-button').click(function(){
    var key = $(this).attr('data-key');
    var datastring = $("#mtotal_" + key).val();
    ...
});