dopo la richiesta ajax il bottone del form non si disabilita

gandalf1959

Utente Attivo
21 Nov 2013
208
1
18
Buongiorno a tutti.
Su una pagina generata dinamicamente ho una chiamata ajax per aggiornare un db.
Funziona.
La pagina php chiamata da ajax mi restituisce un numero progressivo.
sulla pagina ho diversi form i cui bottoni si chiamano registra1, registra2 eccetera. (Ovviamente il numero progressivo di cui sopra corrisponde ai diversi form e quindi ai relativi bottoni).
Quindi per prima cosa attribuisco a una variabile il valore registra+'numero progressivo', poi con document.getElementById cambio lo stile del bottone da display block a display none.
Però questo non succede.
Il codice del bottone:
Codice:
$idregistra = "registra".$righe;
echo "<input type=\"button\" name=\"'$idregistra'\" value=\" REGISTRA \" style=\"display:block\" onClick=\"javascript:formami('$idform');\">";
e qui il codice all'interno della chiamata ajax:
Codice:
buttun = "registra"+progressiv;
document.getElementById(buttun).style.display = "none";
Ho provato anche con document.getElementById(buttun).disabled = true; e comunque non succede nulla...
Vorrei disabilitare il bottone per evitare che l'utente ripremendolo mi registri nuovamente lo stesso record.
Qualche idea?
Grazie
 
Ciao, scrivi onclick tutto in minuscolo per una maggiore compatibilità con i browser.
il codice che hai postato non è completo: per esempo la variabile $idform da dove arriva ?
comunque prova cosi :
Codice:
onclick=\"this.disabled=true;formami('$idform')\"
 
Grazie Criric per il suggerimento.
In effetti così funziona. Ma avrei preferito che il bottone venisse disabilitato dopo la chiamata ajax, poichè esiste sempre la pur remota possibilità che l'inserimento non vada a buon fine.
Per ora lascio così, comunque. Perlomeno evito la possibilità di un doppio inserimento.
La variabile $idform viene dallo script php della pagina e corrisponde al numero progressivo attribuito a tutti gli id che mi interessa recuperare con javascript: il form 1 contiene $giorno1, $mese1 ecc. Questo perchè vengono generati tanti form quanta è l'indicazione dell'utente; per la tale lezione devo impostare 5 appuntamenti, per un'altra 2 o 10... Poi con un ciclo while genero le righe richieste.
In effetti disabilitare o meglio rendere la visibilità = none mi sarebbe servito anche per sostituire il bottone "registra" con un bottone "varia" che ovviamente mi richiamerebbe un altro script.
Se vuoi ti posto il codice di tutta la pagina (sono circa 300 righe). Fammi sapere.
A presto
 
Se disabiliti il pulsante dopo la chiamata ajax non eviti i doppi inserimenti : io potrei premere il pulsante 10 volte prima che la prima richiesta vada a buon fine, le altre nove la seguiranno sucessivamente.
Potresti invece riabilitare il pulsante se la richiesta non è andata a buon fine.
 
  • Like
Reactions: localhost.nicola
Hai ragione... Ora vedo se riesco a farlo funzionare in quel modo.
Ti tengo aggiornato
Intanto grazie
 

Discussioni simili