Salve a tutti, sono nuovo e ne approfitto per salutare e ringraziare questa community grazie alle cui guide ho davvero imparato molto.
Andiamo ora al problema.
Sto creando un sito di una pizzeria (per un esame universitario) per cui è richiesto di utilizzare xhtml, Javascript, database, ajax(con JQuery), jsp/servlet, Javabean...
Dopo aver sbattuto la testa per circa un mesetto per imparare come utilizzare questi linguaggi visti per la prima volta in un corso di quasi 6 mesi, mi sono bloccato su una parte "citata" a lezione: JQuery (e l'esame è fra davvero pochi giorni).
Il problema principale su cui sono bloccato ora si riassume così:
Ho una jsp "Index.jsp" che deve mostrare una lista delle pizze presenti nella pizzeria e, per ogni pizza, permettere di selezionare quantità, data di consegna e, premendo il bottone "add" (uno per pizza), aggiungerla al carrello dell'utente senza modificare la pagina che si sta guardando (a parte un piccolo alert di ricezione ordine).
Ora la parte tecnica: il progetto segue l'architettura MVC. La vista è la jsp Index.jsp; il controller è la servlet "GestoreRichieste" e il modello è il bean "RichiesteDB".
Per mostrare le pizze invoco un metodo di RichiesteDB che, recuperati i valori dal database, ritorna un ArrayList. Tale ArrayList giungerà alla Index dove verrà generato il codice html.
Riporto qui sotto una parte del codice di cui parlo:
codice:
...
String nome = (String)lista.get(i);
i++;
String img = (String)lista.get(i);
i++;
String prezzo = (String)lista.get(i);
i++;
String ingr = (String)lista.get(i);
i++;
%>
<div class="pizza">
<div class ="noBorder">
<u><% out.println(prezzo); %>€</u></p>
[img]<% out.println(img); %>[/img]"></img></p>
</div>
<div class="infoBox">
<% out.println(nome); %></p>
<% out.println(ingr); %></p>
<div class="noBorder"<label align="left">Quantità:</label>
<input type="number" name="Qty" min="0" max="10" value="0"/>
</div>
<div class="noBorder" <label align="left">Data:</label>
<input type="datetime-local" name="date"/>
<font class="small" color="red">(es. 02-04-2012 21:30)</font>
</div>
<button id="addButton" name="add" type="button" onClick="addButton('<%= nome %>', '#qty', '<%= prezzo %>', '#date')">[img]IMG\addButton.png[/img]</button>
</div>
</div>
<%}}%>
</div>
Dopo vari tentativi falliti di accedere direttamente da JQuery ai campi della pizza (tramite id funzionava, ovviamente, solo la prima delle pizze aggiunte ad ogni ciclo di while) ho pensato di passare i campi ad una funzione JQuery come parametri e "risolvermela in fretta" rinunciando alla possibilità delle focus sui campi lasciati vuoti.
codice:
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
<script type="text/javascript">
function addButton(nomeP, quanP, prezP, dateP) {
alert("Ciao, non sono del tutto inutile!");
if ((quanP.val() == "") || (quanP.val() == "0")){
alert("Specificare la quantità della pizza \""+nomeP+"\".");
// $("#qty").focus();
}
else if (dateP == ""){
alert("Data di consegna della pizza \""+nomeP+"\" non inserita.");
// $("#date").focus();
}
else{
$.post("GestoreRichieste", {operazione: "addOrder", nomePizza: nomeP, Qty: quanP, prezzo: prezP, date: dateP},
function(data) {
if (data == "Successo"){
alert("Ordine aggiunto al carrello");
}
else{
alert(data+", inserimento fallito.\nAssicurarsi che la data sia inserita nel formato corretto.\nAssicurarsi che lo stesso ordine non sia già presente nel proprio carrello.");
// $("#date").focus();
}
});
}
}
</script>
Ovviamente questo codice non funziona..a parte l'alert("Non sono del tutto inutile").
Qualcuno può aiutarmi?
L'esame si avvicina e, senza risolvere questo problema, non posso proseguire col progetto (mi mancano ancora un po' di pagine...carrello utente, gestione admin ecc...
)
Ringrazio in anticipo chiunque proverà ad aiutarmi.
P.S. mi scuso se ho sbagliato sezione ma, poichè il problema riguarda sia JQuery che Javascript che xhtml....non sapevo dove metterlo :\