【发布时间】:2012-03-15 18:17:54
【问题描述】:
我知道这个问题已经被问死了,所以我会提前道歉,但我就是不明白。我想做的是某种评分系统,虽然我在其他网站的教程中查看了几个示例,但它们都有些臃肿,并不是我真正想要的。
我需要在选择单选按钮时提交表单。单选按钮代表一些我需要使用服务器端的数字,因为我需要用这个值更新数据库等。之后我需要将更新的数据库值返回到 jsp 并显示这个数字。
所有后端的东西都不是问题。我所需要的只是能够将表单数据发送到 servlet 并在不重新加载页面的情况下取回更新的值。如果可能的话,我还想使用 post form 操作来执行此操作,但这并不重要。
跳至编辑 3
如果没有一些 200 行的 JQuery / Ajax 脚本,这可能吗?
我已经做到了
$('#submit').click(function(){
$.ajax({
url: '/Rating',
type:'POST',
data: {
message: s
},
success:
function(msg){
alert("Success");
// ill want to do something with divs here later i.e a refresh or toggle
}
});
});
我从关于这个主题的其他线程中发现了这一点。我需要它来处理一些基本的 html 表单,比如
<form action="/" id="rating" method="Post">
<input type="radio" name="ra1" onclick="formaction">
<input type="radio" name="ra1" onclick="formaction">
<input type="radio" name="ra1" onclick="formaction">
<input type="radio" name="ra1" onclick="formaction">
<input type="radio" name="ra1" onclick="formaction">
</form>
编辑:我想向其发送信息的 servlet 在我的 web.xml 文件中名为 Rating,带有 url-pattern /Rating。我是否通过标准 request.getAttribute(String value) 调用获取传递给它的信息以及我要查找哪个字符串值? “消息”还是“s”?
如果有任何帮助,我将不胜感激。谢谢。
编辑 2: 我设置了一个测试页面来尝试使这个 ajax 东西工作。使用 3nigma 的解决方案我有
<html>
<head>
<script src="jquery-1.7.1.js"></script>
<script>
$(":radio").change(function(){
var formData = $("form").serialize();
console.log(formData);
$.post("/Test",{data:formData},function(val){
//val has the updated value that you will send from the servlet
//do something
});
});
</script>
</head>
<body>
<form action="/Test" id="rating" method="Post">
<input type="radio" name="ra1" />
<input type="radio" name="ra1" />
<input type="radio" name="ra1" />
<input type="radio" name="ra1" />
<input type="radio" name="ra1" />
</form>
</body>
</html>
在我的 doPost 方法中的我的测试 servlet 中
request.getAttribute("formData");
request.getAttribute("data");
System.out.println("test");
当我运行 jsp 页面并选择一个单选按钮时,似乎没有任何反应。 System.out.println() 没有被执行,这让我认为它永远不会到达 servlet。 有人看到我做错了什么吗?
编辑 3 终于让它工作了。我将包括我遇到的问题,以防有人被困在某些相同的地方。
当发送到名称为 Rating 的 servlet 时,url 只是“Rating”而不是“/Rating”,因为它可能在 web.xml 中。
在 Servlet 的 doPost 方法中,使用 request.getParameter("itemID") 获取数据
整个周末我做的最好的事情就是安装 firebug。这几乎告诉了我我失败的地方并让我走上了正确的轨道。感谢回复的人。
我最终使用的代码是由 danniehansenweb 发布的,但我修复了一个简单的错误。数据 { } 中的逗号不应存在。而是将其移到右大括号之外,例如
data {itemID : rel },
【问题讨论】:
标签: jquery ajax forms jsp refresh