Récupérer des données à partir de la base de données et de les afficher de façon dynamique dans les lignes de la table à l'aide de zones de texte
Je suis actuellement en train de travailler sur un Inventaire de Gestion de projet. Je travaille avec JSP et MySQL sur la Plateforme Netbeans. Dans mon projet sur l'interrogation j'ai besoin de récupérer les valeurs de la base de données et l'afficher dans un tableau. Les lignes à afficher doit être dynamique dans ma page. Elles doivent être affichées dans n'importe quel nombre. Supposons que Lorsque je veux récupérer les valeurs fondées sur un choix particulier que je sélectionne, je devrais être capable d'afficher toutes les données sont basées sur le choix et l'afficher dans les lignes de la table. Je ne suis pas capable de l'afficher sur plusieurs lignes de ma table parce que je m en utilisant les zones de texte pour afficher les valeurs.
Voici l'extrait de code:
<table>
<tr>
<td>
<select name="choice_type">
<option>select</option>
<option value="part_type">part_type</option>
<option value="category">category</option>
<option value="names">names</option>
</select>
</td>
</tr>
<tr>
<th>VAL</th>
<th>VAL DESC</th>
</tr>
<tr>
<td> <input type="text" name="val" id="val" size="15" /></td>
<td> <input type="text" name="val_desc" id="val_desc" size="15" /></td>
</tr>
</table>
<input type="submit" name="Query" value="Query" onClick="getData();"/>
La fonction getData() est comme suit:
function getData(){
xmlHttp=GetXmlHttpObject()
var id=document.getElementById("choice_type").value;
var url="choice_retrieval.jsp";//The code for this file is defined below
url=url+"?choice_type="+id;
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null);
}
function stateChanged(){
if(xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
var showdata = xmlHttp.responseText;
var strar = showdata.split(":");
if(strar.length>1){
var strname = strar[1];
document.getElementById("val").value= strar[1];
document.getElementById("val_desc").value= strar[2];
}
}
L'extrait de Code pour choice_retrieval.jsp est comme suit:
<%
String ch = request.getParameter("choice_type").toString();
System.out.println(ch);
String data ="";
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://", "", "");
Statement st=con.createStatement();
ResultSet rs=st.executeQuery("select * from master_panel where choice_type='"+ch+"'");
while(rs.next())
{
data = ":" + rs.getString("val") + ": " + rs.getString("val_desc");
}
out.println(data);
System.out.println(data);
}
catch(Exception e) {
System.out.println(e);
}
%>
Table de base de données utilisée ici est master_panel(choice_type varchar,val de type varchar,val_desc varchar). Je n'ai pas mis toutes les contraintes de maintenant. Basé sur le choice_type valeur j'ai besoin de récupérer les données correspondantes(val et val_desc) à partir de la base de données et de les afficher dans des lignes dynamiques.
OriginalL'auteur Neal | 2012-03-13
Vous devez vous connecter pour publier un commentaire.
En supposant que les données sont retournées (votre
stateChanged
la méthode est appelée), vous devez créer dynamiquement les lignes de la table (et leur contenu, les zones de texte) dans votrestateChanged
méthode en modifiant les DOM.De modifier le DOM pour créer la structure de la table, le code devrait lire quelque chose comme ça (en supposant que vous avez déjà retiré précédemment, les lignes affichées):
Aussi, comme @TrueDub dit, en mettant SQL dans les Jsp est mauvais pour un tas de raisons. Ce qui est pire, c'est la construction des requêtes SQL avec la concaténation de chaîne - il ouvre votre système à des attaques par injection SQL, en particulier lorsque la chaîne concaténée comprend une chaîne capturée dans le navigateur.
OriginalL'auteur Nick Holt
Vous êtes en train de faire tout à fait quelques choses de mal il y, particulièrement ayant le code de base de données dans une JSP, mais pour répondre à votre question spécifique, vous devez écrire votre jeu de résultats dans une liste et de définir cette liste dans la demande portée avec un id spécifique. Vous pouvez parcourir à l'aide de la JSTL et de balise d'affichage de la sortie en utilisant le {} la notation.
Pour récupérer les données à partir de la base de données sur le serveur, je fais un appel AJAX vers le serveur. Si je me trompe merci de m'aider. Mon but est d'afficher des données dans les lignes(zones de texte) de la table. Je suis nouveau sur JSP donc si u peut me fournir tout échantillon tutoriel concernant ce qu'il serait d'une grande aide pour moi.
Holt : Si u peut me fournir un exemple de tutoriel qui montre le concept ci-dessus, il serait d'une grande aide pour moi. Merci
Voir le tutoriel sur la JSTL SQL balises docs.oracle.com/javaee/1.4/tutorial/doc/JSTL7.html
OriginalL'auteur TrueDub