Ajax getElementById

Summer

Nuovo Utente
29 Apr 2010
9
0
0
Buongiorno a tutti,
Premetto che non conosco bene java...

vorrei realizzare in una pagina web, un menu con diversi bottoni che settino il valore di una variabile quando vengono premuti, per poi passarla a una funzione.

come abbinare il valore della variabile al bottone?

ad esempio se utilizzo un campo di input, scrivo nel campo, invio e tutto funziona, ma se cerco di sostituire il tutto con un bottone,no.

posto il codice interessato....

Codice:
function passa() {
var tP = document.getElementById('tP').value;
ecc..
così funziona
Codice:
<input type="text" name="tP" id="tP" size="15">
<br/>
<input type="button" onClick="passa()" value="Invia">
così no
Codice:
<button type="button" onclick="passa()" name="tP" id="tP" value="TESTO DA PASSARE">TESTO DA PASSARE</button>
fondamentalmente l'incaglio è questo:
il "value" che viene letto da getElementId in caso di utilizzo di button come deve essere espresso?:confused:

Ringrazio in anticipo, buonaserata
 

MarcoGrazia

Utente Attivo
15 Dic 2009
764
15
18
58
Udine
www.stilisticamente.com
Una cosa ma fondamentale: Java è un linguaggio, Javascript un altro!
Usa JS se non ti va di scrivere tutto, ma non usare la parola Java perché confonde le idee. Grazie :)

Ora veniamo al tuo problema se riesco a risolverlo.
Dal manuale dell'html si evince (madonna che parolona) che button funziona come qualsiasi altro elemento di un form, e mi pare giusto vista la standardizzazione di base, quindi:
http://www.diodati.org/w3c/html401/interact/forms.html#edef-BUTTON
value viene passato alla pressione e quindi il DOM deve poterlo rilevare, non è che ti riferivi al testo interno prima della chiusura dell'elemento button? In quel caso mi pare che il nome della variabile sia proprio text, ma non ne sono sicuro al 100%.
 

Summer

Nuovo Utente
29 Apr 2010
9
0
0
Prima di tutto grazie per la risposta! scusate per la confusione tra js...
cmq ho risolto così:
Codice:
<button id="tP" name="tP" type="button" onClick="passa()" value="txtdapassare">
però se i pulsanti diventano due, cambiando il value, dopo che uno è stato premuto il valore della variabile non cambia con una successiva pressione.

approfitto ancora di questa discussione per chiedere gentilmente se è corretto avere + oggetti (i menu) con lo stesso id (ho provato a cambiare la funzione con getElementByName ma non funziona più nulla), e se resettare il testo da passare ad ogni pressione du un bottone sia la via più giusta.
 

MarcoGrazia

Utente Attivo
15 Dic 2009
764
15
18
58
Udine
www.stilisticamente.com
Allora: se usi l'elemento button, sappi che questo deve avere necessariamente anche il tag di chisura, a questo punto se non devi metterci del tetso o un'immagine, tanto vale che usi l'elemento input
Codice:
<input type="button" id="tP" name="tP" type="button" onClick="passa()" value="txtdapassare">
e no id identifica un valore univoco, non ci possono essere duplicati, d'altra parte lo capisci da te, se usi più tasti con testi diversi come fai a distinguerli?
Quindi la tua funzione "passa" può diventare tranquillamente:
Codice:
function passa (testo) {
var tp = testo.value;
}
mentre nell'html:
Codice:
<input type="button" id="tP" name="tP" type="button" onClick="passa(this)" value="txtdapassare">
 

Summer

Nuovo Utente
29 Apr 2010
9
0
0
&

grazie mille per l'auito! funziona tutto perfettamente!

Facendo un passo avanti però... se utilizzo il metodo .open è possibile inserire un url php che contenga il carattere &?

mi spiego meglio:

Codice:
	http.open('get', 'server.php?tp='+tP'&'lg='+lg, true);
non funzionante

Codice:
	http.open('get', 'server.php?tp='+tP, true);
funzionante

dopo vari tentativi, penso che il carattere & sia la causa del blocco... ma non riesco a trovare il sistema per passarlo comunque...

ho provato a convertire il tutto in una stringa, ma il problema dell'& non l'ho risolto

Codice:
var url = "server.php?tp="+tp"&lg"+lg;

	http.open('get', url, true);
 

andre2

Nuovo Utente
15 Mag 2010
5
0
0
approfitto ancora di questa discussione per chiedere gentilmente se è corretto avere + oggetti (i menu) con lo stesso id (ho provato a cambiare la funzione con getElementByName ma non funziona più nulla), e se resettare il testo da passare ad ogni pressione du un bottone sia la via più giusta.