如何在jQuery中获取POST变量

时间:2012-06-04 18:11:38

标签: javascript jquery python ajax

  

可能重复:
  how to get GET and POST variables with JQuery?

我有以下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选择器来获取每个的值?

5 个答案:

答案 0 :(得分: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&gt;最好将live()替换为.on()。 1.7如果可能的话会更好。所以你可以写它

$("#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持有者。

答案 1 :(得分:1)

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

$("#formId").serialize()

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

如何创建隐藏式

类型的多个输入值
<input type="hidden" id="sample_id" value="SOMETHING" />

给他们ID并使用以下内容访问内部数据:

$('#sample_id').val()

答案 4 :(得分:-1)

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

如果您的数据不是太长,您可能需要切换到GET方法。然后,您可以使用此问题中列出的函数检索变量:How can I get query string values in JavaScript?

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