【发布时间】:2014-07-20 21:48:56
【问题描述】:
我是网络开发的新手。我的工作是每 1 或 2 秒从服务器获取数据并使用 amcharts 绘制它们。
这是我目前所拥有的:
<form id="getdata" role="form" method="post" action=@routes.DataApplication.get_data()>
<input type="text" name="device" id="device">
<input type="text" name="type" id="type">
<button id = "submit" type="submit">Submit</button>
</form>
一旦我输入设备并键入并单击提交按钮,它将运行 Java 方法get_data()。该方法将搜索数据库并返回与设备名称匹配的数据,但它会显示另一个页面中的数据,例如www.somepage/getdata。上面的 html 在www.somepage/data 页面中。
我尝试使用 jquery .post() 但问题是它需要一个 url,我尝试将 /getdata 传递给它但没有用。
我的问题是:有没有办法在不重新加载页面的情况下保存我们从@routes.DataApplication.get_data() 操作中获得的数据?
顺便说一下,我正在使用play框架来开发网页。
更新
好的,现在取得了一些进展,我尝试使用ajax post,但是数据返回(在控制台中)是这样的:
[Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object]
这里我有 11 个对象。如果我不使用 ajax post(使用原始的 post form 方法),我也会得到 11 个数据点。
这是我的代码:
<script>
$('#driver').click(function(evt) {
var dataabc = $('form').serialize();
console.log(dataabc);
$('#errors').hide();
$.ajax({
type : 'POST',
data : dataabc,
url : '@routes.DataApplication.get_data()',
success : function(data) {
alert("good");
console.log(data);
},
error : function(result) {
setError('Make call failed');
}
});
return false;
});
</script>
get_data() 所做的只是获取用户输入数据(即表单)并从数据库和return ok(node); 中获取相应的数据。这个节点是JsonNode
任何帮助将不胜感激..
【问题讨论】:
-
在这种情况下,如果可以使用
node.js,则可以使用ajax调用或更好。 -
您尝试过 AJAX 吗?你能检查这个链接stackoverflow.com/questions/11133059/…
-
我试过了,但它返回的是 html 代码而不是我想要的数据
标签: java javascript html ajax playframework