我有一个<input>
类型text
,我希望使用AJAX从数据库中填充值。
首先,我将文本区域定义如下:
<td><input type=text id='st' value=" " name='stname' onclick="donnom();" /></td>
在javascript中,我执行以下操作:
xhr5.onreadystatechange = function(){
if(xhr5.readyState == 4 && xhr5.status == 200) {
selects5 = xhr5.responseText;
// On se sert de innerHTML pour rajouter les options a la liste
document.getElementById('st').innerHTML = selects5;
}
};
xhr5.open("POST", "ajaxIDentifier5.jsp", true);
xhr5.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
id = document.getElementById(idIdden).value;
xhr5.send("id=" + id);
在IDentifier5.jsp
中,我输入了下一个代码:
<%
String id = request.getParameter("id");
System.out.println("idDailyTimeSheet ajaxIDentifier5 as is:" + id);
Session s = null;
Transaction tx;
try {
s = HibernateUtil.currentSession();
tx = s.beginTransaction();
Query query = s.createQuery(
"select from Dailytimesheet dailytimesheet " +
"where dailytimesheet.IdDailyTimeSheet=" + id + " ");
for(Iterator it=query.iterate();it.hasNext();) {
if(it.hasNext()) {
Dailytimesheet object=(Dailytimesheet)it.next();
out.print( "<input type=\"text\" id=\"st1\" value=\"" +
object.getTimeFrom() +
"\" name=\"starting\" onclick=\"donnom()\" ></input>");
}
}
} catch (HibernateException e) {
e.printStackTrace();
}
%>
我想只获取从数据库填充的输入类型文本中的值,因为之后我将能够更改它。
答案 0 :(得分:2)
显然,您的查询只返回一个要放在文本字段中的结果( WHERE ID = ... )。
奇怪的事情:
也许代替:
document.getElementById('st').innerHTML = selects5;
你想这样做:
document.getElementById('st').value = selects5;
但是,您需要在JSP中仅返回查询结果,而不是HTML代码:
out.print(object.getTimeFrom());