【发布时间】:2014-11-20 00:28:05
【问题描述】:
每当用户从选择框中选择一个选项时,我都会尝试传播输入类型[文本]中的值。
我有一个包含一个选择选项和 3 个输入类型(文本)字段的表单。每当用户根据该选项值从选择框中选择一个选项时,我在这里尝试做什么在数据库中。
我也使用了 ajax 调用,但问题是在选择选项值时我能够获取特定数据但我无法在 jsp 输入类型中获取相同的数据,每次我需要重新加载手动翻页。
userdetail.jsp
//imports are here
<html>
<head>
</head>
<body>
<script src="js/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$(".name").change(function(){
var name = $(this).val();
if(name.length >= 1){
$(".status").html("<font color=gray> Checking availability...</font>");
$.ajax({
type: "POST",
url: "getparamfromdb.do",
data: "name="+name,
success: function(msg){
$(".status").ajaxComplete(function(event, request, settings){
$(".status").html(msg);
});
}
});
}
else{
$(".status").html("<font color=red>Username should be atleast <b>5</b> character long.</font>");
}
});
});
</script>
<div class="add">
<form:form method="post" action="addHealthParam.do" >
<table style="margin-top:-6%; margin-left:8%;">
Parameter Name:<br>
<select name="name" class="name">
<option value="select">Select</option>
<option value="Glucose, Serum">Glucose, Serum</option>
<option value="Uric Acid, Serum">Uric Acid, Serum</option>
<option value="Platelets">Platelets</option>
<option value="NRBC">NRBC</option>
</select>
Parameter Current Reading:
<input type="text" name="current_reading"/>
Unit of Measurement:
<select name="measurementunit" >
<option>
<c:forEach var="healthp" items="${paramvalue}">
${healthp.measurementunit}
</c:forEach>
</option>
</select>
Reference Range(Minimum):
<input type="text" name="minrange" value="
<c:forEach var="healthp" items="${paramvalue}">
${healthp.minrange}
</c:forEach>" >
Reference Range(Maximum):<br>
<input type="text" name="maxrange"
value="
<c:forEach var="healthp" items="${paramvalue}">
${healthp.maxrange}
</c:forEach>">
<input type="submit" value="Submit"/>
</body>
</html>
控制器类:-
imports are here
@Controller
@SessionAttributes
public class HealthParameterController {
@Autowired
BharatService service;
@Autowired
HibernateTemplate hibernateTemp;
List<HealthParameter> healthparam=null;
// to store the value in database.
@RequestMapping(value="/addHealthParam.do",method=RequestMethod.POST)
public String addHealthParam(@ModelAttribute("addhealthparam")HealthParamMVC addhealthparam,BindingResult result,HttpSession session){
// code to store the value in database
}
// execute through ajax call
@RequestMapping(value="/getparamfromdb.do",method=RequestMethod.POST)
public String gettingParam(@ModelAttribute("addhealthparam")
HealthParamMVC addhealthparam,BindingResult result,
HttpServletRequest req,HttpSession session){
System.out.println("In gettingParam ");
String name=addhealthparam.getName();
List<ParameterFromDB> li=service.getParamfromDb(name);
// further getting value from database based on name.
Iterator it=li.iterator();
while(it.hasNext()){
Object ob=it.next();
ParameterFromDB db= (ParameterFromDB) ob;
}
session.setAttribute("paramvalue", li);
// i have tried it with request also
//request.setAttribute("paramvalue", li);
return "userdetails";
}
}
【问题讨论】:
-
您在 HTML 中声明的输入类型在哪里?是 current_reading 吗?如果是,那么您需要设置该输入类型。将 current_reading 声明为 ID,然后设置 $("#current_reading").val(msg);在javascript中
-
@Jani yaa 这是我在这里添加代码的同一个问题
-
@Jignesh 如您所见, current_reading 将仅由用户输入。根据参数名称(选择),我想从数据库中填充 3 个字段值(最小范围、最大范围和测量单位),然后用户可以通过单击提交按钮提交。即使我已经根据选择选项值获得了这些值(在控制台上),但是这些值我将无法在 jsp 页面中传递(每次都需要重新加载才能获取数据)。
标签: java ajax spring-mvc