Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Siamo tornati nel parco tecnologico di Trieste per il kick-off del programma che mette a disposizione di cinque startup le infrastrutture di ricerca, dal sincrotrone Elettra ai laboratori di genomica e HPC. Roberto Pillon racconta il modello e la visione
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo
HP OMEN MAX 16-ak0001nl combina RTX 5080 Laptop e Ryzen AI 9 HX 375 in un desktop replacement potente e ben raffreddato, con display 240 Hz e dotazione completa. Autonomia limitata e calibrazione non perfetta frenano l'entusiasmo, ma a 2.609 euro è tra le proposte più interessanti della categoria.
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta
Google ha appena rinnovato la sua celebre serie A con il Pixel 10a, lo smartphone della serie più conveniente se consideriamo il rapporto tra costo e prestazioni. Con il chip Tensor G4, un design raffinato soprattutto sul retro e l'integrazione profonda di Gemini, il colosso di Mountain View promette un'esperienza premium a un prezzo accessibile. E il retro non ha nessuno scalino
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 26-09-2011, 21:46   #1
Guybrush1989
Junior Member
 
Iscritto dal: Mar 2008
Messaggi: 23
[javascriot] Dubbio su come procedere con controlli javascript

Salve a tutti,
volevo un consiglio (non il codice, naturalmente) su come proseguire per fare quanto segue.
Praticamente, arrivo in una pagina jsp da una servlet in cui popolo un menù a tendina con dei valori ottenuti da query.
Ora, ogni qualvolta cambio il valore contenuto in tale menù a tendina, altri 2 menù a tendina dovranno essere popolati in base ad una query su DB.

Il primo menù a tendina non si trova in un form.

Il mio pensiero era praticamente questo:
creo un form fittizio, sfrutto l'evento javascript "onchange" sul primo menù a tendina per invocare un metodo javascript che fa il submit del form fittizio;
sul form fittizio imposto l'evento "onsubmit" in modo che faccia il redirect sulla servlet passandogli un parametro nascosto (chiamiamolo OP) e, utilizzando un if sul "request.getParameter("OP")", invoco un metodo "slave" che effettua la query e mi ritorna un array di resultset (che è stato precedentemente definito).
Dopodichè effettuo il forward sulla pagina jsp.
A questo punto il mio dubbio è questo: da dove riprenderà il programma l'esecuzione? Dalla testa della pagina o dal form fittizio?
Immagino che al 99% sia la seconda soluzione, ed a quel punto popolerei, con uno scriptlet, i menù a tendina che mi servono.

E' corretto come ragionamento?
Ah, dimenticavo...come potrei fare a tenere nascosti i 2 menù a tendina fino a quando non viene effettuata la scelta dal primo?

Vi ringrazio molto, Fabio.
Guybrush1989 è offline   Rispondi citando il messaggio o parte di esso
Old 26-09-2011, 22:32   #2
Kenger
Member
 
Iscritto dal: Aug 2005
Messaggi: 168
il metodo più semplice per fare quello che chiedi è ajax. Con jQuery:

Codice:
$("#select1").change(function() {
      var selectedVal = $(this).val();

      $("#select2").load('urlDellaJSP', 'val=' + selectedVal);
})
Questo è un pezzo di codice che al cambio selezione su un select con id select1 esegue una chiamata ajax alla pagina "urlDellaJsp" passando in get il parametro val che contiene l'elemento selezionato.

La JSP in questo caso deve tornarti direttamente il codice html contenuto nella select, cioè una cosa tipo

Codice HTML:
<option value="1">1</option>
<option value="2">2</option>
che verrà sostituito al contenuto attuale. Qui trovi la documentazione del metodo load. Se guardi bene puoi passare anche un terzo parametro che rappresenta la funzione che verrà chiamata dopo che il contenuto del tuo select è stato sostituito. All'inizio select2 sarà nascosto e in quella funzione lo fai apparire.

Questi sono i mattoncini(è praticamente tutto fatto ) che ti servono per fare quello che chiedi. Se servono altre spiegazioni chiedi pure.

EDIT: Quella che segue è la mia opinione: Javascript liscio va bene giusto per fare le prime cose, poi serve per forza un framework per poter fare le cose con una certa velocità e assenza di bug. Javascript purtroppo è molto soggetto alle differenze tra i diversi browser.

Ultima modifica di Kenger : 26-09-2011 alle 22:34.
Kenger è offline   Rispondi citando il messaggio o parte di esso
Old 27-09-2011, 09:14   #3
Guybrush1989
Junior Member
 
Iscritto dal: Mar 2008
Messaggi: 23
ciao,
ti ringrazio per la risposta esauriente, però purtroppo ho dimenticato di dire che framework non ne posso usare
Deve essere tutto javascript/jsp/servlet
Guybrush1989 è offline   Rispondi citando il messaggio o parte di esso
Old 27-09-2011, 18:42   #4
Kenger
Member
 
Iscritto dal: Aug 2005
Messaggi: 168
E non puoi nemmeno mettere un form intorno al select? In quel caso diventerebbe semplice.

Al limite puoi crearti un form in un altro punto della pagina con dentro un campo nascosto che all'evento onchange valorizzi. Poi fai submit sul form e via.

Sennò puoi usare ajax anche senza framework, usando l'oggetto XMLHttpRequest. Su questo passo però, non l'ho mai usato.
Kenger è offline   Rispondi citando il messaggio o parte di esso
Old 28-09-2011, 21:21   #5
Guybrush1989
Junior Member
 
Iscritto dal: Mar 2008
Messaggi: 23
Quote:
Originariamente inviato da Kenger Guarda i messaggi
E non puoi nemmeno mettere un form intorno al select? In quel caso diventerebbe semplice.

Al limite puoi crearti un form in un altro punto della pagina con dentro un campo nascosto che all'evento onchange valorizzi. Poi fai submit sul form e via.

Sennò puoi usare ajax anche senza framework, usando l'oggetto XMLHttpRequest. Su questo passo però, non l'ho mai usato.
eh ma così facendo non comporta il refresh della pagina?
io avrei bisogno di una cosa "dinamica", quindi ajax sarebbe ottimo...difatti ho usato gli iframe per simulare un comportamneto "pseudo-ajax"
Guybrush1989 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Deep Tech Revolution: così Area Science Park apre i laboratori alle startup Deep Tech Revolution: così Area Science P...
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo HP OMEN MAX 16 con RTX 5080: potenza da desktop ...
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta Recensione Google Pixel 10a, si migliora poco ma...
6G, da rete che trasporta dati a rete intelligente: Qualcomm accelera al MWC 2026 6G, da rete che trasporta dati a rete intelligen...
CHUWI CoreBook Air alla prova: design premium, buona autonomia e qualche compromesso CHUWI CoreBook Air alla prova: design premium, b...
Amazon annulla gli aumenti della RAM: po...
Crollo del mercato PC nel 2026: secondo ...
Come dimostrare che gli agenti di IA fan...
Galaxy AI potrebbe creare app funzionant...
Luce solare anche di notte con i satelli...
The Witcher 4 con ambientazioni da urlo ...
007 First Light e Control Resonant avran...
DLSS 4.5 con Dynamic Multi Frame Generat...
Meta acquisisce Moltbook, il social netw...
Red Hat al MWC 2026: attenzione all'IA n...
Amazon espande 'Paga in Contanti': ora d...
Samsung Galaxy S26 Ultra, promosso ma se...
Gemini sempre più integrato in Go...
NVIDIA investe in Thinking Machines Lab:...
NVIDIA prepara NemoClaw, piattaforma ope...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 08:10.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v