如何在jQuery中获取POST变量

How to get POST variables in jQuery

本文关键字:获取 POST 变量 jQuery      更新时间:2023-09-26

可能的重复项:
如何使用 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 选择器来获取每个选择器的值?

$("#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指向页面加载时属于 DOM 的#submit_financials持有者。

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

$("#formId").serialize()

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

$.post("yourServerPage.php", $("form").serialize(),function(data){
  //Do whatever with the result from ajax server page.
});

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

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

给他们 ID 并使用以下方法访问其中的数据:

$('#sample_id').val()

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

如果数据不是太长,则可能需要切换到 GET 方法。然后,您可以使用类似于此问题中列出的函数来检索变量:如何在 JavaScript 中获取查询字符串值?

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