Newsgroup: it.comp.lang.javascript
Titolo: Esploder non riesce ad impostare l'innerHTML di un select...


Ma c'è qualcosa che funzioni in questa schifezza di software???  : /
ok, ok, avrei dovuto verificarlo prima. ma cazzarola... Non c'è nessun
sistema per ovviare a questo baco, a parte mettere ogni select in un div
e aggiornare il div?
malimortacci...
-- 
Mr. Fix @ work

Mr. Fix ha scritto:

http://www.javascripttoolbox.com/lib/selectbox/
e correlate ...

 e correlate ...
Apperò.... Molto interessante (tutto il sito)... Thanks!  : )


 e correlate ...
Premesso che non mi sono spulciato bene il link in questione, ma non ho
trovato come gli esempi mostrati in quel sito risolvano il problema
dell'impostazione dell'innerHTML in una select su IE; quanto meno non in
modo esplito. Probabilmente è nelle "correlate" a cui ti riferisci?
-- 
~ "Le leggi sono come le ragnatele: abbastanza forti per catturare i deboli,
troppo deboli per trattenere i forti."
(Anacarsi lo Scita)

 e aggiornare il div?
A meno che tu non abbia tonnellate di options, perché non usare le DOM API,
o comunque l'oggetto Option? Nel secondo caso avresti pure una
retrocompatibilità fino a NS4.x :)
-- 
~ Ci si aspetta di tutto, ma non si e' mai preparati a nulla. (M.Swetchine)


alla quale per ora ho solo dato un'occhiata furtiva e non ho testato
ancora nulla...


 
lui non vuole impostare l'innerHTML della select, è *palese* che vuole gestire le option.
(quale altro "innerHTML" vuole mettere dentro una select? un'iframe? ... mah ... un minimo
di elasticità mentale non guasta mai ...)


add(element, before) per aggiungere opzioni ad una select?
Però...  uhm... Ora ho una sequenza di select... Scegliendo un valore
nel primo (che è statico e sempre uguale) vengono svolte due operazioni:
- viene effettuata una ricerca nel db e mostrato il risultato in
apposito div
- la stessa ricerca viene "raggruppata" e impacchettata in una serie di
<option></option> che vengono passati (responseText) al select
successivo
L'innerHTML era l'ideale perché così lasciavo i select con le funzioni
onchange() già configurate con i parametri giusti.
Per aggiungere options via javascript senza usare innerHTML dovrei
passare gli "<option>" splittandoli nelle singole righe ed eseguire una
funzione che aggiunge gli elementi al select....
O no?  O: )


 di elasticità mentale non guasta mai ...)
Sei solo stato un po' troppo "stringato", a mio avviso. Non avrebbe guastato
spendere qualche parola in più. Qualcosa tipo "lascia perdere innerHTML,
gestisci le option singolarmente" ( da quanto mi è parso di capire dal link
"correlato" che ha passato poi Mr.Fix ).
Il che è corretto, ma cambia completamente l'approccio, non risolve
ovviamente il baco dell'innerHTML. E spesso è capitato, anche in richieste
in questo NG, di non poter modificare ciò che ci inviava il server perché
non direttamente gestito da noi. Di solito quindi, se si suggerisce un
metodo alternativo si scrive chiaramente.
Poi, va beh, l'importante è capirci; e ora ci siam capiti.
-- 
~ "Io non vorrei subire un'ingiustizia nè commetterla, ma se
dovessi scegliere, preferirei subirla."
(Platone - "Gorgia")

 mah ... un minimo di elasticità mentale non guasta mai ...)
Bbbbbooooniiiiii, nun famo a curva sudde... ; ) (CiccioBaffo docet...)


 O no?  O: )
Più o meno. Io di solito facevo restituire al server un'array di stringhe
testo/valore, e poi ciclavo quello. Insomma, il responseText appariva come:
["testo option 1","valore option 1","testo option 2","valore option 2"]
e via dicendo. Lato client valutavo il responseText come espressione
javascript, creandomi così l'oggetto effettivo, e facevo un ciclo tipo:
/* resetta la select di destinazione */
mysel.options.length = 0;
for (var i=0;i<arr.length;i+=2)
	mysel.options[mysel.options.length] = new Option(arr[i],arr[i+1]);
Vado a memoria, è un po' che non uso più le select in questo modo; il metodo
per resettare la select, seppur brutale, dovrebbe andar bene. In
alternativa, se non ti dovesse piacere, puoi sempre usare il DOM:
while ( mysel.firstChild )
	mysel.removeChild(mysel.firstChild);
Cmq negli archivi di questo NG ce ne dovrebbero essere a iosa di
informazioni in merito. :)
-- 
~ "Viviamo dei vuoti lasciati da qualcun'altro."

       mysel.options[mysel.options.length] = new Option(arr[i],arr[i+1]);
Tutto chiaro come al solito, thanks again!  : )
p.s. Prima o poi mi dovrň sdebitare in qualche modo, fosse anche solo
con una pizza, se capiti nei dintorni di Savona avvisami... ; )


 con una pizza, se capiti nei dintorni di Savona avvisami... ; )
Eheh. Dubito che ci passi, ma se dovesse accadere terrò presente, grazie :)
-- 
~ 
"Si possono ingannare poche persone per molto tempo o molte persone per poco
tempo. Ma non si possono ingannare molte persone per molto tempo."
(Abramo Lincoln)

 spendere qualche parola in più. 
il "mio avviso" era evidentemente diverso, quando cerco aiuto spero di trovare
qualcuno che mi dia un aiuto :), non 327 righe di ovvietà il cui unico scopo
è noto solo all'autore del post, se avessi scritto:
"
  Ti consiglio, per ovviare al problema, di gestire direttamente le option
della select <altre 326 righe su: differenze tra usare il DOM e innerHTML in quali casi
potrebbe essere consigliabile, link a grafici su benchmark ... esempi di vita vissuta, cenni e rimandi
a situazioni reali verificatesi durante lo sviluppo di un software, qualche accenno al mio
cane (che non ho), al gatto (che non ho), al pesce rosso (che non ho) etc. etc. >
http://www.javascripttoolbox.com/lib/selectbox/
"
   ci sarebbero state 327 righe di troppo, la dimostrazione che sarebbero
state di troppo è il fatto che l'OP ha afferrato al volo
   se poi qualcuno sente il bisogno di fare accademia ad ogni post
non è un problema mio ...
tutto rigorosamente come sempre IMHO

 tutto rigorosamente come sempre IMHO
Ci mancherebbe.
-- 
~ "Il successo è l'abilità di passare da un fallimento all'altro senza
perdere l'entusiasmo."
(W. Churchill)

 "sbranarlo".
   non mi sembra di aver risposto con "nessun tono" particolare e mi dispiace che ti
sia sentito "sbranato" ma non erano le mie intenzioni ...
   ancora una volta (e mi fa dannare il fatto che non riesca a capire il perchè)
"abbiamo frainteso" ed ancora una volta mi dispiace, sinceramente.
buona giornata

 Eheh. Dubito che ci passi, ma se dovesse accadere terrņ presente, grazie :)
Se capiti... Sai che noi liguri non siamo cosģ taccagni come ci
dipingono e che una "minerale sgasata" non si rifiuta a nessuno!  : D


 perchč) "abbiamo frainteso" ed ancora una volta mi dispiace, sinceramente.
In internet č la cosa piů comune di questo mondo; senza il "tono di
voce" e le espressioni facciali mette male far capire a chi legge le
reali intenzioni di chi scrive. : )
Tanto per ridere, un paio di giorni fa stavo "chattando" con una amica
che usa messenger (io stavo utilizzando Adium su Mac).
Mi scrive qualcosa e io le rispondo con una faccina che arrossisce
Lei mi scrive: "cosa significa?"
E io: "arrossisco, che altro?"
e lei: "ah, e il pipistrello cosa centra?"
io: "pipistrello???"
lei: "si, quello che mi hai mandato..."
siamo andati avanti per un po' poi o capito che l'emoticon che su Adium
mostrava una faccina che arrossisce, su msn veniva trasformata in un
pipistrello!
Sembra di essere tornati ai tempi dei geroglifici, che il fidanzato
scriveva "corvo" (= i tuoi capelli sono splendenti come l'ala del corvo)
e la fidanzata capiva "cornacchia" (= sei racchia come una cornacchia!)
: D


 pipistrello!
LOL

 buona giornata
Altrettanto
-- 
~ Se potete leggere questo, la mia donna è caduta.
(Letta sul retro di una maglietta di un motociclista)