【问题标题】:How can you pull a PHP value from a table row in JQuery to use later?如何从 JQuery 中的表行中提取 PHP 值以供以后使用?
【发布时间】:2016-10-19 20:51:38
【问题描述】:

我有一个 Button 填充了表格中的每一行。我希望能够输入“$row[auditID]”行的值并在我的模式中使用它,以便能够使这个删除按钮工作。弹出警报,但 Modal 不会隐藏,并且我的删除操作不起作用(不会删除审核)。

<a href=\"#\" id=\"$row[auditID]\" class='btn btn-danger  btn-xs' role='button' data-toggle='modal' data-target='#question_alert' Title=\"Remove\" >Remove</span>   </a>";

<!-- modal pop up for Deleting a audit -->
<div class="modal fade" style="z-index:10000" id="question_alert" role="dialog">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
            <h4 class="modal-title">Audit Delete Confirmation</h4>
            </div>
            <div class="modal-body"id="myModal1">
                <h3>Are you sure you want to <strong>DELETE</strong> this Audit? You will not be able to get it back.</h3>
            </div>
            <div class="modal-footer">
            <form method = "POST">
                <input type="button" id="yes_delete" value="Yes " name="deleteaudit" />
                <button type="button" class="btn btn-default" data-dismiss="modal">No</button>
            </form> 
            </div>
        </div>
    </div>
</div>

jQuery 脚本:

<script> 
 $("#yes_delete").click(function(){
var auditID = this.id;
//alert("delete test");
    $.post("edit_audits.php?action=delete&auditID="+auditID,{
    function(data){
        alert("Audit Deleted");
        $('question_alert').modal('hide');
        window.location.reload();
        }
        }); 
    }); 
</script>

【问题讨论】:

  • this 在点击处理程序中将是&lt;input type="button" id="yes_delete"&gt; 元素,而不是首先打开模式的&lt;a&gt;,所以auditID 将是"yes_delete",这当然是赢了不行。
  • 有什么我可以添加或做的补救措施吗?

标签: javascript php jquery twitter-bootstrap-3


【解决方案1】:

这样的?

将您的 PHP 值放入 a 标记中,如下所示:

    <a href="#" data-mylink="<?php echo $yourPHPVar; ?>" class='btn btn-danger  btn-xs' role='button' data-toggle='modal' data-target='#question_alert' Title="Remove" ><span>Remove</span> </a>

jsFiddle Demo

$('#question_alert').on('shown.bs.modal', function (e) {
	var btn = $(e.relatedTarget);
	var linked = btn.data('mylink');
	$('#audNo').text(linked);
// Or:
//	var modal = $(this);
//	modal.find('.modal-body h3 span#audNo').text(linked);
});
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<a href="#" id="bob" data-mylink="Fred" class='btn btn-danger  btn-xs' role='button' data-toggle='modal' data-target='#question_alert' Title="Remove" ><span>Remove</span> </a>

<!-- modal pop up for Deleting a audit -->
<div class="modal fade" style="z-index:10000" id="question_alert" role="dialog">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
            <h4 class="modal-title">Audit Delete Confirmation</h4>
            </div>
            <div class="modal-body"id="myModal1">
                <h3>Are you sure you want to <strong>DELETE</strong> Audit number <span id="audNo"></span>? You will not be able to get it back.</h3>
            </div>
            <div class="modal-footer">
            <form method = "POST">
                <input type="button" id="yes_delete" value="Yes " name="deleteaudit" />
                <button type="button" class="btn btn-default" data-dismiss="modal">No</button>
            </form> 
            </div>
        </div>
    </div>
</div>

【讨论】:

    【解决方案2】:

    我会做这样的事情

    <a href="javascript:void(0)" class='btn btn-danger btn-xs btn-remove' data-id="<?=$row["auditID"]?>" role='button' data-toggle='modal' data-target='#question_alert' Title="Remove" >Remove</span></a>
    
    <!-- modal pop up for Deleting a audit -->
    <div class="modal fade" style="z-index:10000" id="question_alert" role="dialog">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
                <h4 class="modal-title">Audit Delete Confirmation</h4>
                </div>
                <div class="modal-body"id="myModal1">
                    <h3>Are you sure you want to <strong>DELETE</strong> this Audit? You will not be able to get it back.</h3>
                </div>
                <div class="modal-footer">
                <form method = "POST">
                    <input type="button" id="yes_delete" value="Yes " name="deleteaudit" />
                    <button type="button" class="btn btn-default" data-dismiss="modal">No</button>
                </form> 
                </div>
            </div>
        </div>
    </div>
    

    这在 jQuery 函数中。确保将 jQuery 脚本标签放在页面顶部,以便 jQuery 在此函数之前加载

    <script>
    var removeId = null;
    $(document).ready(function(){
        $(".btn-remove").click(function(){
            removeId = $(this).attr("data-id");
        });
        $("#yes_delete").click(function(){
            $.ajax({
                url: "edit_audits.php",
                type: "POST",
                data: "action=delete&auditID="+removeId,
                success: function(){
                    $('#question_alert').modal('hide');
                    window.location.reload();
                }
            });
        }
    });
    

    请记住,我没有运行它,因为我没有所需的所有数据。您可能需要稍微调试一下,因为它是盲编码。

    【讨论】:

    • 我认为类会与引导程序冲突...(.btn-remove)。如果他们不这样做,那就太好了!我很感激你的回答。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-20
    • 1970-01-01
    • 2017-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多