0

可能重复:
如何使用 JQuery 获取 GET 和 POST 变量?

我有以下 HTML:

<form action='.' method='post'>{% csrf_token %}
    <div class="parameters">
        Show
            <select name="earnings_filter">
                <option value="all">Total earnings</option>
                <option value="hd">HD earnings</option>
                <option value="sd">SD earnings</option>
            </select>
        <input type="submit" name="submit" class="submit float-right" value="submit" id="submit_financials"/>
    </div>
</form>

我需要对此进行 ajax 调用,我正在触发它:

$("#submit_financials").live('click', function(){
    ...
});

有没有办法获取在 POST 中提交的变量,例如选择了哪个选项(我需要获取大约 10 个其他变量)。还是我需要使用 jQuery 选择器来获取每个选择器的值?

4

5 回答 5

3
$("#submit_financials").live('click', function(){
    $.ajax({
      url: '', // script url to send
      method: 'POST', // method of sending
      data: $('form').has(this).serialize(),  // .serialize() make query string with form inputs name and value
      dataType:'json',  // expected data format returned from server, you may have something else
      success: function(response) {
          // response contains data returned from server
      }
    });
});

如果您使用 jQuery > 1.7 替换它会更好,如果可能的话会live()更好。.on()所以你可以写

$("#container").on('click', '#submit_financials', function(){
    $.ajax({
      url: '', // script url to send
      method: 'POST', // method of sending
      data: $('form').has(this).serialize(),  // .serialize() make query string with form inputs name and value
      dataType:'json',  // expected data format returned from server, you may have something else
      success: function(response) {
          // response contains data returned from server
      }
    });
});

这里#container指向#submit_financials在页面加载时属于 DOM 的持有者。

于 2012-06-04T18:18:37.457 回答
1

如果所有值都在表单的输入元素中......

$("#formId").serialize()
于 2012-06-04T18:17:13.533 回答
1

您可以serialize表单并发送到服务器页面

$.post("yourServerPage.php", $("form").serialize(),function(data){
  //Do whatever with the result from ajax server page.
});
于 2012-06-04T18:17:21.840 回答
0

如何创建几个隐藏类型的输入值

<input type="hidden" id="sample_id" value="SOMETHING" />

给他们 id 并使用以下方法访问里面的数据:

$('#sample_id').val()
于 2012-06-04T18:14:42.200 回答
-1

不幸的是,POST 变量在从客户端到服务器的请求中进行通信,但它们不会自动包含在从服务器返回客户端的响应中。这是将它们与 GET 变量区分开来的原因之一。

如果您的数据不是太长,您可能希望改用 GET 方法。然后,您可以使用类似以下问题中列出的函数检索变量:如何在 JavaScript 中获取查询字符串值?

或者,如果您可以访问服务器端代码,则可以在返回的 HTML 中包含这些变量;然而,这完全是另一个问题:)

于 2012-06-04T18:28:57.470 回答