Tutto è difficile, prima che diventi facile.
Cavicchi Andrea
Problemi con javascript, jquery, ajax clicca qui
Non è così semplice:
nell'esempio del tuo link i valori vengono recuperati sempre nelle 2 var indicate.
Se guardi il mio esempio i valori vengono trasferiti ognuno nel div corrispondente.
Inoltre ci sono tutti i controlli precedenti, anch'essi tutti riferiti ad un div univoco.
Per questo volevo poterne fare uno e caricarlo in vari div vuoti tipo iFrame usando, però, un sistema che mi vincolasse meno dell'iFrame
Tutto è difficile, prima che diventi facile.
Cavicchi Andrea
Problemi con javascript, jquery, ajax clicca qui
Ho aperto questo post per questo: non uso jquery ho provato a usarlo e, avendo problemi, ho chiesto aiuto....
Tutto è difficile, prima che diventi facile.
Cavicchi Andrea
Problemi con javascript, jquery, ajax clicca qui
1) Ci sono un sacco di errori js nella pagina di prova che hai postato, non vedo come possa riscriverti una funzione "dinamica" se l'originale non va.
2) Mi sembra di capire che una volta che l'utente sceglie quantità e prezzo deve comparire un altro div di riepilogo che ti permette di modificare le scelte precedenti, questo meccanisco come funzionerà con più valori di quantità e prezzo? Il div di riepilogo deve essere ripetuto più volte o è comune per tutte le scelte?
Cmq per fare riferimento all'elemento html appena modificato ti basta passare 'this' come parametro della funzione, per accedere ad altri campi che hanno una relazione con il campo appena modificato puoi usare il DOM.
Trova un modo per capire quale div sia il corrispondente, ci sono svariate possibilità, esempio:Se guardi il mio esempio i valori vengono trasferiti ognuno nel div corrispondente
Hai 2 select uguali, il valore scelto per le 2 select deve finire in un div associato:
2 possibili soluzioni:codice:<select name="Colore1" onChange="copiaVal(this)" > <option value="" selected="selected">Colore..</option> <option value="Nero">Nero</option> <option value="Avorio">Avorio</option> <option value="Verde">Verde</option> </select> <div id="risultatoColore1"> Risultato1 </div> <select name="Colore2" onChange="copiaVal(this)" > <option value="" selected="selected">Colore..</option> <option value="Nero">Nero</option> <option value="Avorio">Avorio</option> <option value="Verde">Verde</option> </select> <div id="risultatoColore2"> Risultato2 </div>
codice:function copiaVal(elem){ myDiv = document.getElementById("risultato"+elem.name); val = elem.options[elem.selectedIndex].value; myDiv.innerHTML = val; }codice:function copiaVal(elem){ myDiv = elem.nextSibling.nextSibling; val = elem.options[elem.selectedIndex].value; myDiv.innerHTML = val; }
Ciao Vindav,
sicuramente il mio codice contiene errori e può essere ottimizzato (è la prima volta che mi cimento con js) ma fa, comunque, quello che deve fare:
l'utente fa la prima scelta
si apre il secondo div dove trova il riepilogo
qui può confermare o aggiungere una seconda scelta (il selettore contiene quindi tutte le scelte possibili meno quella già fatta) e, qualora faccia una seconda scelta, questa si aggiunge allo stesso div riepilogo.
Il problema è che ciò va ripetuto 10/20 volte nella pagina esempio.jpg dovendo, quindi, ripetere tutto il codice con riferimento ai nuovi div ogni "fascia".
Potendo, invece, caricare ogni "fascia" come fossero degli iFrame ma utilizzando jQuery ogni fascia resterebbe indipendente.
E' possibile oppure le funzioni di una "fascia" interferirebbero con l'altra?
Ultima modifica di illo-illo; 23-04-2014 a 13:48
Tutto è difficile, prima che diventi facile.
La soluzione te l'ho già detta, che il processo vada ripetuto una,dieci o mille volte è completamente indifferente. Il codice che avevi postato nell'esempio non funzionava proprio, non apriva nessun div e c'erano errori javascript(bastava vedere la console). Probabilmente ti eri perso qualche pezzo di codice nel ricreare l'esempio. Provare a creare queste benedette funzioni dinamiche? tenendo presente i suggerimenti che ti ho dato e quelli di Andrea.
Sei libero di seguire la strada che preferisci ci mancherebbe altro, la mia opinione la conosci, non ti darò certo suggerimenti su come risolovere il problema in modo errato, usare ajax in questo caso è veramente una forzatura.