Ajax Post与变量具有相同的值

时间:2015-11-12 09:28:02

标签: php ajax forms

我使用以下代码提交带有ajax / php的表单。

<form method="post" action="">
    <input name="saqhiddenid" class="saqhiddenid" type="hidden" value="' . $pci_saq_id . '" />
    <button type="button" name="editsaq" class="editsaq">Edit</button>
</form>

$(function () {

        $(".editsaq").click(function(){

        $.ajax({
        url: 'someurl',
        type: "POST",
        data: {
            saqhiddenid: $('input[name="saqhiddenid"]').val()
        },
        dataType: "JSON",
        success: function (data) {

            some code

        }
    });

}); 

});     

提交按预期工作。 我可以在HTML代码中看到“saqhiddenid”的值不同,但是当我提交表单时,我总是从最高值得到结果。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

那是因为你没有禁用实际的表单提交。所以你进行了ajax调用,但表单也会以旧值提交。你需要:

$(".editsaq").click(function(e){
   e.preventDefault();
   var form = $(this).closest('form');
   var value = form.find('input[name="saqhiddenid"]').val();
   $.ajax({
    url: 'someurl',
    type: "POST",
    data: {
        saqhiddenid: value
    },
    dataType: "JSON",
    success: function (data) {

        some code

    }
};

答案 1 :(得分:1)

如果多个表单具有相同的输入名称,它将始终选择第一个输入值。

如果您的form结构与发布的相同,请尝试以下代码:

data: {
        saqhiddenid: $(this).prev().val()
    }