PDA

View Full Version : Javascript aiutino!


VegetaSSJ5
28-06-2005, 20:44
RISOLTO! ORA C'E' UN ALTRA DOMANDA AL POST #8

Ragazzi siccome avrò bisogno anche in futuro di qualche aiutino su javascript ho messo un titolo generico.
In pratica dovrei fare questo: io ho un campo <input type="text"...> e io vorrei che quando si clicca con il mouse in questo campo intervenga una funzione javascript che blocchi un'eventuale modifica di quel campo. In pratica quel campo non deve essere reso modificabile ma tramite javascript. Ho provato direttamente a mettere come attributo disabled ma in questo modo questo oggetto non mi viene passato tramite la form con il metodo post. Ho provato ad aggiungere l'attributo onclick="javascript: noclick()"... Ma quando clicco la funzione non viene richiamata perchè non succede nulla. Qualcuno può darmi una mano? Grazie a chi mi risponderà... :)

lombardp
29-06-2005, 06:50
Prova così:

<input type="text" readonly="readonly" />

VegetaSSJ5
29-06-2005, 10:24
allora ho provato e non va. ho cercato nelle specifiche w3c dell'html qui:

http://www.w3.org/TR/REC-html40/interact/forms.html#adef-readonly

e come si può vedere l'attributo readonly va dichiarato solo col suo nome ad es. <input type="text" name="username" readonly />

ma non va neanche in quest'altro modo... :muro:

VegetaSSJ5
29-06-2005, 10:35
mi correggo! ora funzione correttamente con readonly, c'era un errore di sintassi! grazie lombardp! :) addirittura ho realizzato quello che volevo fare senza neanche usare javascript, bene! :)

lombardp
29-06-2005, 11:29
mi correggo! ora funzione correttamente con readonly, c'era un errore di sintassi! grazie lombardp! :) addirittura ho realizzato quello che volevo fare senza neanche usare javascript, bene! :)

Solo un appunto:

Per scrivere codice conforme XHTML devi mettere readonly="readonly", perché XML non ammette attributi non impostati.

Se ti va bene solo HTML metti pure READONLY da solo, ma se lo scrivi nell'altra forma va bene per tutti e due...

VegetaSSJ5
29-06-2005, 12:05
hai ragione, ho provato a validare la pagina (devo validare secondo lo standard xhtml 1.1) e non andava, poi ho sistemato quell'attributo e viene validata con successo. grazie! :)

Matrixbob
30-06-2005, 09:45
Mi permetto di chiedervi un aiutino qui:
http://www.hwupgrade.it/forum/showthread.php?t=969103&highlight=form

... non si sa mai. :)

VegetaSSJ5
06-07-2005, 00:16
allora ho un'altra domanda.
ho una finestra popup che presenta una sequenza di radio button. io devo fare in modo che quando si preme un radio button, quest'evento scateni l'esecuzione di uno script in php che mi fa una query su database e riproponga in output la stessa finestra con i radio button ma con in più una lista di select. mi sapete dire come si può fare questo?

kk3z
06-07-2005, 00:43
allora ho un'altra domanda.
ho una finestra popup che presenta una sequenza di radio button. io devo fare in modo che quando si preme un radio button, quest'evento scateni l'esecuzione di uno script in php che mi fa una query su database e riproponga in output la stessa finestra con i radio button ma con in più una lista di select. mi sapete dire come si può fare questo?

in realtà puoi fare tutto già nel popup (basta che gli fai richiamare una pagina .php invece che .html) e fai già la query che ti serve quando si carica la pagina, e inserisci i risultati in un <div> nascosto sfruttando la proprietà display:

<div style="display:none;"> testo nascosto </div>

quindi con javascript modifichi lo stile del div a seconda che il radiobutton sia selezionato o meno

<script type="text/javascript">
function show_hide(radiobutton_element, div_element_id)
{
if (document.getElementById)
{
document.getElementById(div_element).style.display = document.getElementById(radiobutton_element).checked == true ? "block" : "none";
}
else
{
document.div_element_id.style.display = document.radiobutton_element.checked == true ? "block" : "none";
}
}

....

<input type="radiobutton" name="rb_1" onclick="show_hide(this, div_nascosto)">
<div id="div_nascosto"> risultati query nascosti </div>

VegetaSSJ5
06-07-2005, 09:29
ti spiego, per ogni radio button devo fare una query, a questo ci avevo già pensato, ma io cercavo una cosa che quando clicco su un radio button, in base al valore della radio mi fa la query e aggiorna la pagina con i risultati.

inoltre ho un'altra domanda: come faccio con un comando javascript ad aprire una nuova finestra di popup ma passando valori con il metodo POST? cioè mi spiego meglio: una volta cliccato su un radio button io con una funzione javascript devo richiamare una pagina php passando il valore del radio button tramite il metodo post, o al massimo col get, ma preferibilmente col post.

kk3z
06-07-2005, 13:24
con javascript non puoi postare dati a un file php, puoi usare il GET componendoti l'url con i dati (del tipo "file.php?key1="+value1+"&"....)

Quello che puoi fare è un form con un campo nascosto e al click sul radiobutton imposti il valore del campo nascosto e submitti il form

<form id="form_nascosto" name="form_nascosto" action="..." method="post">
<input type="hidden" id="key_nascosto" name="key_nascosto" value="">
</form>

<input type="radiobutton" onclick="setvalueandsubmit('value', 'input_nascosto', ''form_nascosto')">

<script type="text/javascript">
function do_query(query, input_name, form_name)
{
if (document.getElementById)
{
document.getElementById('input_name').value = query;
document.getElementById('form_nascosto').submit();
}
else
{
document.forms['form_nascosto'].elements[0].value = query;
document.forms['form_nascosto'].submit();
}
}

nn so se funzioni, non sono sicuro di come trovare gli elementi del form :(

VegetaSSJ5
06-07-2005, 13:32
ho finito 5 minuti fa. finalmente sono riuscito a creare esattamente quello che volevo io: click sul radio, aggiornamento pagina con una lista di select e pulsante elimina che mi elimina quello che ho selezionato. se volete posso anche postare il codice ma penso sia abbastanza inutile perchè uso una libreria per i template php che conosco solo io (perchè ce l'ha data il prof a lezione) ed è un po' ostica da imparare, cmq su richiesta... ;)