Newsgroup: it.comp.www.php
Titolo: più pulsanti nella form

Posso all'interno di un form, oltre al pulsante di submit, avere anche un
altro pulsante (secondario)
che faccia un calcolo in base a dei valori contenuti in text box del form
stesso?
Quindi il click sul pulsante secondario deve prendere i valori da alcune
text box coinvolte, fare l'operazione, 
e richiamare la stessa pagina con il valore calcolato proposto nella
giusta text box (e quindi modificabile) 
e gli altri valori che erano stati eventualmente inseriti precedentemente
nelle stesse text box
Per esempio se avessi:
- diverse textbox 
- text box per il numero di ore, 
- text box per il costo orario 
- vorrei quindi avere un pulsante che al click calcoli numero di ore *
costo orario per inserirlo nella textbox successiva
- text box per il totale (numero di ore * costo orario)
- altre textbox
- pulsante Submit (che chiama la parte di inserimento in DB)
Al click sul pulsante secondario verranno proposti gli stessi valori
precedentemente inseriti piu il totale calcolato
ciao
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 
se ho capito cosa devi fare devi usare del codice javascript.
Quindi,oltre al submit avrai un input di tipo "button" e devi associare
al click su questo bottone una funzione javascript che ti calcoli il totale.

 al click su questo bottone una funzione javascript che ti calcoli il totale.
bel casino, č quello a cui pensavo, e che avrei voluto evitare...
Praticamente al click su questo pulsante devo inserire in un textBox il
prodotto di 2 valori contenuti in altri 2 textBox;
so che č una stupidata ma non conosco la sintassi java, qualcuno puņ
postare un esempio di quel tipo?
grazie e ciao


 
dovresti fare una cosa del genere:
<script language="javascript">
function somma()
{
	par1 = document.getElementById("par1").value;
	par2 = document.getElementById("par2").value;
 
	document.getElementById("somma").value = par1*1 + par2*1
}
</script>
par 1 <input type="text" id="par1"/><br/>
par 2 <input type="text" id="par2"/><br/>
<br/>
<input type="button" value="somma" onclick="somma()"/><br/>
<br/>
totale <input readonly type="text" id="somma"/><br/>

> se ho capito cosa devi fare devi usare del codice javascript.
Si può anche evitare:  basta indirizzare il form sulla pagina stessa e usare 
il php per controllare il pulsante premuto ed agire di conseguenza, 
eventualmente generando il contenuto dei campi risultato.
Ovviamente ci sono i tempi di reload da considerare. 


e cmq un minimo di javascript serve anche con questa soluzione.

 stesso?
Metodo javascript-free:
Due pulsanti di tipo submit, a cui dai un name (es: name="action") e un
value (che sarà il testo sul pulsante). La pagina in action si
"accorgerà" del pulsante premuto testando il valore di
$_POST['action'].

 e cmq un minimo di javascript serve anche con questa soluzione.
No, niente javascript.


anch'io facevo cos', solo che ho dovuto abbandonare questo metodo xkè
alcuni browser non "vedono" il nome del submit.E cmq ci sarebbero dei
problemi nel caso in cui si decidesse di usare un'immagine al posto del
classico pulsante submit.

 alcuni browser non "vedono" il nome del submit.
usa un campo hidden invece di dare un "nome" al submit
-- 
Anche questo mi ha insegnato il fiume: tutto ritorna.

 
se usa un campo hidden deve sempre usare un js x cabiare il valore di
questo campo a seconda dell'operazione  che deve fare.

 classico pulsante submit.
Perche'?
Quando clicchi su un immagine che fa da submit il browser popola anche 
due variabili $_REQUEST che contengono x e y intese come il pixel sul 
quale hai cliccato...
Quindi se il nome non arriva puoi verificare una delle due suddette.
-- 
~omar


se ci sono 2 input di tipo "image" cm fai a distinguere quale l'utente
ha cliccato basandoti sulla x e sulla y?

 ha cliccato basandoti sulla x e sulla y?
Un possibile modo - da completare - potrebbe essere il seguente:
<form action="<?php print($_SERVER['PHP_SELF']); ?>" method="post">
<div>
<input type="image" name="img1" src="img1.gif">
<input type="image" name="img2" src="img2.gif">
</div>
</form>
<?php
if (isset($_POST['img1_x']))
{
  print('Hai premuto il pulsante 1');
}
elseif (isset($_POST['img2_x']))
{
  print('Hai premuto il pulsante 2');
}
else
{
  print('Premi un pulsante.');
}
?>
Ciao.
-- 
Long John

 alcuni browser non "vedono" il nome del submit.
Nella fattispece, quali?

 ha cliccato basandoti sulla x e sulla y?
In base al nome che hai dato al campo image
<INPUT TYPE="image" NAME="bottoneuno" SRC="/immagine.gif">
Se ci clicco sopra popolo
$_POST[bottoneuno_x]
$_POST[bottoneuno_y]
o se preferisci
$_REQUEST[bottoneuno_x]
$_REQUEST[bottoneuno_y]
-- 
~omar

 $_POST['action'].
qualcosa del genere?
<html>
<head>
</head>
<body>
<?php
if (isset($_POST['calco'])):
    $prim=$_POST['prim']; 
    $seco=$_POST['seco']; 
    if ($prim!=null or $seco!=null){ 
    if ($prim==null){ $prim=0;} 
    if ($seco==null){ $seco=0;} 
    $risu=$prim+$seco; 
    }
    echo "La somma è $risu";
else:
?>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <input type="text" name="prim" size=5 maxlength=5>Primo numero<br>
    <input type="text" name="seco" size=5 maxlength=5>Secondo numero<br>
    <br>
    <input type="text" name="risu" size=6 maxlength=6 value="<? echo
$risu;?>">Risultato<br>
    <input type="submit" name="calco" value="Calcola">
    <input type="submit" name="inserisci" value="Inserisci">
    </form>
<?php endif; ?>
</body>
</html>



secondo me il metodo + pulito è avere un campo hidden che viene cambiato
tramite javascript quando viene cliccato un pulsante,e a seconda del
valore che assume quel campo al momento del submit si decide quale
operazione fare.

 momento del submit si decide quale operazione fare.
È un'alternativa. Ovviamente occorre tenere presente che essendo
javascript lato client potrebbe essere stato disabilitato.
Si potrebbe anche usare un solo pulsante per il submit e
aggiungere un radiobox con cui chiedere esplicitamente quale
operazione si vuole compiere.
Ciao.
-- 
Long John

 operazione fare.
Il metodo piů pulito č sempre quello che fa a meno del javascript.
Non č che il javascript debba essere bandito, ma la buona regola dice
che la pagina dovrebbe funzionare anche col javascript disabilitato.
In questo caso col javascript disabilitato la pagina non funziona e
questo dovrebbe scoraggiarti ad usarlo in questo contesto.

 operazione si vuole compiere.
OTTIMA idea!
io ho inserito i 2 pulsanti submit e comunque va tutto bene;
per adesso lo lascio cosě
grazie a tutti
ALe


 $_REQUEST[bottoneuno_y]
           ^^^^^^^^^^^^^^
Notice: Undefined constant ...
L'utilizzo di $_REQUEST e' sconsigliabile.
-- 
I am what I am, I do what I can
Do. Or do not. There is not try.

 $_REQUEST[bottoneuno_y]
Ufficio complicazioni affari semplici.
<INPUT TYPE="submit" NAME="action" VALUE="pulsante">
<INPUT TYPE="image" NAME="action" VALUE="immagine" SRC="/immagine.gif">
$_POST['action'] varrà 'pulsante' o 'immagine' a seconda di cosa
premi.