Precedente :: Successivo |
Autore |
Messaggio |
LupinIII_dm Mortale devoto

Registrato: 12/02/08 14:40 Messaggi: 5
|
Inviato: 12 Feb 2008 15:28 Oggetto: * Aiuto input dinamici |
|
|
Salve a tutti,
sono nuovo di questo forum e vi scrivo per chiedervi un piccolo aiuto.
Il mio problema è il seguente: sto sviluppando una pagina jsp in cui devo far comparire una lista di elementi. Se si clicca su ogni elemento, sotto di esso compare un sottomenù che mostra un form da compilare. Gli elementi della lista rappresentano delle risorse, ad esempio "Ristorante", acui corrisponde una tabella su un database creato con mysql. Dentro questa tabella andranno tutte le istanze di tipo ristorante, esempo "Ristorante Pizzeria Da Gennaro", "Ristorante il veliero",..., che vengono inserite proprio attraverso il form di cui vi parlavo prima. I campi del form, che l'utente editerà, sono i valori degli attributi della tabella ristorante. Ora poichè è possibile creare nuovi tpi di risorsa e quindi nuove tabelle, ogni tabella sarà create in base a diversi attributi che lo stesso utente potrà scegliere in fase di creazione del tipo. Il problema è quindi come poter richiamare in un file java, che mi implementa il Controller del MVC e che gestisce la creazione delle tabelle, i valori che attribuisco ai vari 'name' dei tag input che inserisce l'utente e che vanno a definire il valore di quel particolare attributo per quella istanza? Spero di essermi spiegato . In aiuto vi riporto il codice:
Codice: |
<body>
<form name="Istanza" id="istanza" action='<portlet:actionURL><portlet:param name="action" value="riepilogoIstanza"/></portlet:actionURL>' method="post">
<div align="center">
</div>
<table>
<thead>
<th>
<div align="center">
</div>
<h4 align="center">
<font size="2" face="Eras Medium ITC">SELEZIONARE IL TIPO DI RISORSA IN CUI INSERIRE LA NUOVA ISTANZA </font>
<br>
</h4>
</th>
<th>
<br>
</th>
</thead>
<tbody>
<tr>
<td width="27em">
<div class="visualizza">
<%
DatabaseManager.connect();
int nome=0;
%>
<h3 style="font-weight: normal;">
<br>
<strong></strong>
</h3>
<h3 style="font-weight: normal;">
<font face="Eras Medium ITC"><u><strong>RISORSE DISPONIBILI</strong>
</u>
</font>
</h3>
<%
String sqlRisorsa = "SELECT nome FROM tipo_risorsa";
ResultSet rsTipo = DatabaseManager.executeQuery(sqlRisorsa);
String tipo[] = new String[100];
int i = 0;
while (rsTipo.next())
{
tipo[i] = rsTipo.getString("nome");
System.out.println( " "+i+ " " + tipo[i]);
i++;
}
for(int j=0; j<i; j++)
{
%>
<ul>
<li class="menu">
<a href="javascript:mmenu('submenu-1')"><%=tipo[j]%></a>
<ul class="submenu" id="submenu-1">
<%
String sqlAttributi = "SELECT at.nome FROM attributo AS at INNER JOIN ((SELECT id_attributo FROM tipo_risorsa AS tr INNER JOIN ha as ha WHERE ha.id_tiporisorsa=tr.id_risorsa AND tr.nome='"+ tipo[j] + "') AS res) WHERE res.id_attributo=at.id ";
ResultSet rsAtt = DatabaseManager.executeQuery(sqlAttributi);
//Ottengo come risultato una colonna che contiene tutti gli attributi relativi alla risorsa scelta e la carico nel vettore attr
int x = 0;
while (rsAtt.next())
{
nome ++;
%>
<table border="1" width="300" height="67">
<td>
<%=rsAtt.getString("nome")%>
</td>
<td width="100">
<input type="text" name="<%=rsAtt.getString("nome")%>">
</td>
</table>
<%
}
%>
</ul>
</li>
</ul>
<%
}
%>
</div>
</td>
<td>
<%
DatabaseManager.closeConnection();
%>
</td>
</tr>
</tbody>
<tfoot>
<td colspan="2">
<input type="button" value="Aggiungi Istanza">
</td>
</tfoot>
</table>
</form>
|
Se avessi usato input con 'name'=variabile nel punto java lo richiamerei con un request.getParameter. Ma nel caso di
Codice: |
<input type="text" name="<%=rsAtt.getString("nome")%>">
|
come faccio a richiamare <%=rsAtt.getString("nome")%>??? |
|
Top |
|
 |
kluster Dio maturo

Registrato: 15/04/06 13:14 Messaggi: 2898
|
Inviato: 12 Feb 2008 16:38 Oggetto: |
|
|
dunque non conosce il jsp quindi non vorrei farti perdere tempo e prendi tutto con le molle ....
ma tu non vuoi portarti dietro un valore ID per quel campo risorsa ossia oltre a prendere il
Codice: | SELECT nome FROM tipo_risorsa |
prendi anche il campo ID (o come si chiama)
Codice: |
"SELECT ID, nome FROM tipo_risorsa"
|
poi oltre a prenderti
Codice: |
tipo[i] = rsTipo.getString("nome");
|
ti crei un'altro array che ne so
Codice: |
IDtipo[i] = rsTipo.GetString("ID"); // con la giusta sintassi ed il giusto nome del campo
|
e poi il campo invece di chiamarlo cosi' lo chiami
Codice: |
<input type="text" name="<%IDtipo[i]%>_name">
|
poi dopo scorrendoti una volta fatto il submit.
Ti scorri in loop tutte le risorse ti vai a recupeare il valore
Codice: |
//prendi tutti gli id della tabella Risorse te li scorri
while ....
{
//prendi i valori
valore = rsAtt.getString(VALORE_ID_TABELLA__RISORSE_NEL_LOOP +"_name")
//e fai gli update del caso
....
}
|
ma non vorrei complicare e appesantire il calcolo dell'update, vedi tu
L'ultima modifica di kluster il 12 Feb 2008 16:40, modificato 1 volta |
|
Top |
|
 |
SverX Supervisor Macchinisti


Registrato: 25/03/02 12:16 Messaggi: 11809 Residenza: Tokelau
|
Inviato: 12 Feb 2008 16:39 Oggetto: Re: Aiuto input dinamici |
|
|
non ho capito molto, solo:
LupinIII_dm ha scritto: | Se avessi usato input con 'name'=variabile nel punto java lo richiamerei con un request.getParameter. Ma nel caso di
Codice: |
<input type="text" name="<%=rsAtt.getString("nome")%>">
|
come faccio a richiamare <%=rsAtt.getString("nome")%>??? |
dovrebbe essere comunque una request.getParameter anche se i dati sono arrivati attraverso un POST e non attraverso il GET, nel qual caso avresti le coppie parametro-valore nella querystring... |
|
Top |
|
 |
LupinIII_dm Mortale devoto

Registrato: 12/02/08 14:40 Messaggi: 5
|
Inviato: 25 Feb 2008 13:37 Oggetto: GRAZIE !!! |
|
|
Ragazzi non so come ringranziarti kluster!
Ho risolto tenendo traccia dell'ID!!! Grazie ancora!  |
|
Top |
|
 |
kluster Dio maturo

Registrato: 15/04/06 13:14 Messaggi: 2898
|
Inviato: 25 Feb 2008 16:53 Oggetto: |
|
|
prego figurati. |
|
Top |
|
 |
|