【问题标题】:Ajax Post with the same value from variable来自变量的相同值的 Ajax Post
【发布时间】:2015-11-12 18:07:49
【问题描述】:

我正在使用以下代码提交带有 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”的值是不同的,但是当我提交表单时,我总是从最大值获取结果。

有什么想法吗?

【问题讨论】:

  • 您的问题不清楚。如果您能清楚地解释问题,我们将能够提供帮助。
  • 问题在于,尽管我发布的 saqhiddenid 的值在每种形式中都不同,但实际发布的值始终相同,准确地说是第一个。
  • 您在同一页面上是否有多个表单,input 名为 saqhiddenid

标签: php ajax forms


【解决方案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

    }
};

【讨论】:

  • 已经尝试过了,但不起作用,仍然从发布相同的值获得结果
  • 如果您发送从输入字段获得的值,提交值有何不同?还有什么是“最高价值”?
  • 页面中有多个表单,其值由变量$pci_saq_id确定
  • 啊,我看,你的问题是它从它匹配的第一个元素中获取值。您需要的是从当前表单中获取值。编辑了我的答案,看看
  • thnx ,它有效,提供了更大的灵活性,因为您正在搜索特定的变量。
【解决方案2】:

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

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

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

【讨论】:

  • 它正在工作!非常感谢萨米尔。我认为它可能是这样的,但找不到正确的语法。再次感谢!
  • 我的答案是解决这个问题,因为它实际上搜索表单元素。为了使 prev() 起作用,元素必须彼此完全相邻。因此,如果您使用此方法并且 html 稍有更改,它就会中断
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
  • 2017-08-21
  • 2018-05-14
相关资源
最近更新 更多