的index.html
function drawChart() {
var jsonData = $.ajax({
url: "server.php?startdate=" + start_date + "&enddate=" + end_date + "&type=" type,
dataType: "json",
async: false
}).responseText;
var obj = jQuery.parseJSON(jsonData);
var data = google.visualization.arrayToDataTable(obj);
(...)
此vars: start_date,end_date和type 应该通过表单获取而不刷新页面,因此我可以将其发送到server.php并做一些事情
如何在不更改此jsonData结构等的情况下执行此操作?
因为我需要它来构建图表。
再次感谢:) ps:如果我不清楚,请注意我:)
答案 0 :(得分:1)
假设您的表单有id
且每个表单输入都有name
,您可以使用jQuery serialize()
函数将表单数据发送到您的ajax请求中的URL 。像这样:
var jsonData = $.ajax({
url: "server.php",
data: $('#myForm').serialize(),
dataType: "json",
async: false
}).responseText;
请注意,在ajax调用中添加了data
选项,其中#myForm
是表单的ID。
例如,如果你有
<input type="text" name="start_date" />
在您的表单中,ajax请求实际上会发送到server.php?start_date=2012-11-20
答案 1 :(得分:1)
在页面上想象一个表单(例如下面的表单),一些jQuery将允许您获取输入到文本字段中的值并存储到javascript变量中,然后您可以在drawChart()函数中使用它们。
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
$('#never_name_a_button_submit').click(function() {
var start_date = $('start_date').val();
var end_date = $('end_date').val();
var type = $('type').val();
});
});
function drawChart() {
var jsonData = $.ajax({
url: "server.php?startdate=" + start_date "&enddate=" + end_date + "&type=" type,
dataType: "json",
async: false
}).responseText;
var obj = jQuery.parseJSON(jsonData);
var data = google.visualization.arrayToDataTable(obj);
(...)
</script>
<form id="myForm">
<input type="text" name="start_date" id="start_date"><br />
<input type="text" name="end_date" id="end_date"><br />
<input type="text" name="type" id="type"><br />
<input type="button" id="never_name_a_button_submit">
</form>