disabilitare tasto dopo il click

iperboreo

Utente Attivo
21 Giu 2012
126
0
16
Ciao a tutti, vorrei chiedere come disabilitare il tasto "submit" dopo averlo premuto una volta,
in sostanza premendo il tasto submit (chiamato positivo, nel mio caso) si incrementa il numero soprastante,
io devo fare in modo che un utente lo possa premere solo una volta. non riesco a farlo.
Vi posto il codice se potete aiutarmi ad inserire in javascript la stringa che occorre: garzie

PHP:
<?php 

$varl = fopen("numero.txt", "r"); 
$num = fread($varl, filesize("numero.txt")); 
fclose($varl); 

echo "<font color=red><b> $num </b></font>"; 

if(isset($_POST['pulsante'])){ 
$var = fopen("numero.txt", "r"); 

$var = fopen("numero.txt", "r"); 
$contenuto = fread($var, filesize("numero.txt")); 

$somma=$contenuto+1; 
fclose($var); 

$var2 = fopen("numero.txt", "w+"); 
fwrite($var2, $somma); 
fclose($var2); 
} 
?> 

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> 
<input name="pulsante" type="submit" value="positivo"> 
</form> 
</div>
 
ciao, prova cosi
Codice:
<input name="pulsante" type="submit" onclick="this.disabled=true" value="positivo">
 
rileggendio meglio il tuo script ....
dovresti mettere la lettura del file dopo la scrittura altrimenti ti perdi un click
prova cosi
PHP:
<?php
if (isset($_POST['pulsante'])) {
    
    $var = fopen("numero.txt", "r");

    $var = fopen("numero.txt", "r");
    $contenuto = fread($var, filesize("numero.txt"));

    $somma = $contenuto + 1;
    fclose($var);

    $var2 = fopen("numero.txt", "w+");
    fwrite($var2, $somma);
    fclose($var2);
    ?>
    <script>
        window.onload = function() {
            document.getElementById('positivo').disabled = true;            
        }
    </script>
    <?php
}
$varl = fopen("numero.txt", "r");
$num = fread($varl, filesize("numero.txt"));
fclose($varl);
echo "<font color=red><b> $num </b></font>";
?> 

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
    <input id="positivo" name="pulsante" type="submit" value="positivo"> 
</form> 
</div>
 
Ciao criric
hai ragione infatti è cosi e non sapevo perchè.
La tua modifica funziona, solo che il tasto si disabilita dopo parecchi secondi, permettendo cosi di cliccare ancora parecchie volte il tasto.
è una funzione a tempo? ma non credo
grazie





rileggendio meglio il tuo script ....
dovresti mettere la lettura del file dopo la scrittura altrimenti ti perdi un click
prova cosi
PHP:
<?php
if (isset($_POST['pulsante'])) {
    
    $var = fopen("numero.txt", "r");

    $var = fopen("numero.txt", "r");
    $contenuto = fread($var, filesize("numero.txt"));

    $somma = $contenuto + 1;
    fclose($var);

    $var2 = fopen("numero.txt", "w+");
    fwrite($var2, $somma);
    fclose($var2);
    ?>
    <script>
        window.onload = function() {
            document.getElementById('positivo').disabled = true;            
        }
    </script>
    <?php
}
$varl = fopen("numero.txt", "r");
$num = fread($varl, filesize("numero.txt"));
fclose($varl);
echo "<font color=red><b> $num </b></font>";
?> 

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
    <input id="positivo" name="pulsante" type="submit" value="positivo"> 
</form> 
</div>
 
prova a spostare il codice javascript prima della funzione php
PHP:
<?php
if (isset($_POST['pulsante'])) {
    ?>
    <script>
        window.onload = function() {
            document.getElementById('positivo').disabled = true;            
        }
    </script>
    <?php 
    
    $var = fopen("numero.txt", "r");

    $var = fopen("numero.txt", "r");
    $contenuto = fread($var, filesize("numero.txt"));

    $somma = $contenuto + 1;
    fclose($var);

    $var2 = fopen("numero.txt", "w+");
    fwrite($var2, $somma);
    fclose($var2);
 
giust,perche aspetta il caricamento della pagina
e se provi cosi?
PHP:
<?php
if (isset($_POST['pulsante'])) {

    $var = fopen("numero.txt", "r");

    $var = fopen("numero.txt", "r");
    $contenuto = fread($var, filesize("numero.txt"));

    $somma = $contenuto + 1;
    fclose($var);

    $var2 = fopen("numero.txt", "w+");
    fwrite($var2, $somma);
    fclose($var2);
}
$varl = fopen("numero.txt", "r");
$num = fread($varl, filesize("numero.txt"));
fclose($varl);
echo "<font color=red><b> $num </b></font>";
?> 

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
    <input id="positivo" name="pulsante" type="submit" value="positivo"> 
    <?php
    if (isset($_POST['pulsante'])) {
        ?>
        <script>     
            document.getElementById('positivo').disabled = true;    
        </script>
        <?php
    }
    ?>
</form> 
</div>
 
GRANDISSIMO CRIRIC funziona perfettamente ora, incrementa il numero e si disabilita immediatamente.
GRAZIE non so come sdebitarmi con Voi !!!!
 

Discussioni simili