2010-05-30 3 views
0

J'ai un <input> de type text que je veux remplir avec une valeur provenant d'une base de données utilisant AJAX. D'abord, je définir ma zone de texte comme ce qui suit:ajax pour remplir un texte de type d'entrée

<td><input type=text id='st' value=" " name='stname' onclick="donnom();" /></td> 

En javascript, je fais ce qui suit:

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);    

En IDentifier5.jsp, je mets le code suivant:

<% 
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(); 
} 
%> 

Je veux obtenir seulement la valeur dans le texte de type d'entrée peuplé de base de données, parce que après que je pourrai le changer.

+0

Votre question n'est pas facile à comprendre. – stagas

+0

J'aime la façon dont vous cachez votre code à l'extrême droite de la zone disponible. – Amarghosh

+0

qu'est-ce que vous voulez - une liste déroulante ou une liste de sélection multiple ou juste une liste ordonnée/non ordonnée d'articles? – Amarghosh

Répondre

2

De toute évidence, votre requête renvoie un seul résultat (WHERE ID = ...) que vous souhaitez placer dans votre champ de texte.

choses étranges:

  • La page que vous appelez via AJAX est priting code HTML, mais votre essayez de l'utiliser comme innerHTML d'un élément.
  • Il semble que vous souhaitiez ajouter une entrée plutôt qu'une autre existante. Pourquoi a-t-il un identifiant/nom différent?

Peut-être au lieu de:

document.getElementById('st').innerHTML = selects5; 

Vous voulez faire:

document.getElementById('st').value = selects5; 

Mais alors vous devrez retourner uniquement le résultat de la requête dans votre JSP, pas le code HTML:

out.print(object.getTimeFrom()); 
Questions connexes