传递id更改后,Ajax输出不会更改

时间:2015-02-25 08:38:40

标签: php jquery ajax

$(document).ready(function(){
    $("#get_mem_det").click(function(){
        $.ajax({
            type: "POST",
            url: "get_mem_detil.php",
            data: { id: $("#HMID").val() },
            success: function(result) {
                $("#resl").html(result);
            }
        });
    });
});
<?php
    $sql_view = mysql_query("SELECT * FROM member_tb WHERE u_id <> '$userid' AND status='' ORDER BY mem_id ASC ");
    while($res = mysql_fetch_assoc($sql_view)) {
        <input id="HMID" name="HMID" type="hidden" value="'.$res['mem_id'].'" />'; ?>
        <input type="button" id="get_mem_det" value="View" class="btn btn-small"  onclick="popup('popUpDiv')" >
    <?php  } ?>

<div id="blanket" style="display:none;"></div>

<div id="popUpDiv" style="display:none;">
    <a href="#" onclick="popup('popUpDiv')">Click Me To Close</a>
    <div id="resl"></div>
</div>

AJAX工作正常。但#HMID POST值在请求get_mem_detil.php时不会发生变化,因此每次点击按钮都会产生相同的结果。我该如何解决?

提前感谢。

2 个答案:

答案 0 :(得分:0)

$(document).ready(function(){
    $("#get_mem_det").click(function(){
        $.ajax({
            type: "POST",
            url: "get_mem_detil.php",
            data: { id: $("#HMID").val() },
            success: function(result) {
                $("#resl").html(result);
            }
        });
    });
});

将始终使用标识为HMID的第一个输入字段,您应该使用按钮调用一个函数(this.form),然后在函数中通过执行以下操作获取隐藏字段的值:

function func(form) {
    var HMID = form.elements['HMID'].value;
    $("#get_mem_det").click(function()
        {
            $.ajax({type: "POST",
            url: "get_mem_detil.php",
            data: { id:HMID},
            success:function(result)
            {
                $("#resl").html(result);
            }
        });
    });
}

然后发送HMID变量。

答案 1 :(得分:0)

问题是因为您要向页面添加具有相同id属性的多个元素 - id必须是唯一的。这意味着每当您选择#HMID元素时,只会找到第一个元素,这使得它看起来好像值永远不会改变。尝试更改为使用类:

<?php
    $sql_view = mysql_query("SELECT * FROM member_tb WHERE u_id <> '$userid' AND status='' ORDER BY mem_id ASC ");
    while($res = mysql_fetch_assoc($sql_view)) { ?>
        <input class="HMID" name="HMID" type="hidden" value="'<? echo $res['mem_id'] ?>'" />'; 
        <input type="button" id="get_mem_det" value="View" class="btn btn-small"  onclick="popup('popUpDiv')">
<?php  } ?>

从那里你可以遍历以在按钮点击处理程序中找到输入:

$("#get_mem_det").click(function(){
    var hmidVal = $(this).prev('.HMID').val();
    $.ajax({
        type: "POST",
        url: "get_mem_detil.php",
        data: { id: hmidVal },
        success: function(result) {
            $("#resl").html(result);
        }
    });
});