-
Aggiornare pulsante ajax
Salve a tutti. Se io ho questo pulsante
Codice HTML:
<input type="button" value="aggiorna" id="bottone">
come posso fare per trasformarlo in questo
Codice HTML:
<input type="button" value="Aggiorna fatto" id="bottone2">
non appena si clicca il primo? Mi servirebbe per un form fatto in ajax. Ho provato con
Codice HTML:
// script ajax ...
success: function(msg){
$("#bottone").html("#bottone2");
alert( "Errori trovati: " + msg );
}
ma senza risultato.
-
trasformarlo :shock:
$("#bottone").val("Aggiorna fatto");
-
Si, ma i pulsanti svolgono un compito diverso quindi vorrei aggiornarlo al secondo non appena clicco il primo.
-
traduci per favore
comunque qualsiasi cosa vuoi fare al secondo cliccando il primo
inizierà cosi $("#altrobottone").<farequalcosa> :mrgreen:
se il qualcosa è cambiare il testo visualizzato
$("#altrobottone").val("nuovo testo");
se devi cambiare colori o altro
$("#altrobottone").css("cosa","come");
se deve scomparire
$("#altrobottone").hide();
-
Allora, il primo pulsante deve mandare il voto al database se lo clicco. Se il voto è stato mandato dopo il click, il pulsante dovrà essere aggiornato nel secondo pulsante perché quando vado a cliccare il secondo pulsante il voto deve essere annullato, quindi non devo semplicemente cambiare la scritta o il colore del pulsante :mrgreen:
-
ok tasmutazione (comunque possibile) apparte cosa vorresti fargli fare :mrgreen:
suggerisco sparizioni, disattivazioni e traslazioni :mrgreen:
-
Crei due pulsanti con le due funzioni distinte , all'inizio il secondo pulsante lo rendi nascosto con visibility hidden , dopo che hai eseguito AJAX rendi visibile il secondo pulsante ed invisibile il primo.
esempio
Codice:
$("#pulsante1").css("visibility","hidden");
$("#pulsante2").css("visibility","show");
-
NLSweb, quello che dici tu l'ho modificato cosi:
Codice HTML:
// script ajax ...
success: function(msg){
$("#vota1").css("visibility","hidden");
$("#vota2").css("visibility","visible");
alert( "Errori SQL trovati: " + msg );
}
Comunque, la riga
Codice HTML:
$("#vota2").css("visibility","show");
va modificata in
Codice HTML:
$("#vota2").css("visibility","visible");
ma perchè non mi rende visibile il secondo pulsante?
-
Leggi messaggio #4
Comunque potresti tranquillamente assegnare due funzioni a un solo pulsante...
-
Si, ho letto il messaggio 4, ma non sono molto esperto di ajax. Come potre assegnare 2 funzioni ad un pulsante?
-
riguardo al msg #4 : puoi nascodere qc semplicemente con hide() e mostrarla con show()
in vari modi tra cui
<input type = "button" id = "Pulsy" value = "Pulsy">
<script>
$("#Pulsy").attr("funzione", "faiQuesto");
$("#Pulsy").click(function() {
if ( $("#Pulsy").attr("funzione") == "faiQuesto")
{
alert("OK allora faccio questo()");
$("#Pulsy").val("Pulsy - quello");
$("#Pulsy").attr("funzione", "faiQuello");
return;
}
if ( $("#Pulsy").attr("funzione") == "faiQuello")
{
alert("OK allora faccio quello()");
$("#Pulsy").val("Pulsy - altro");
$("#Pulsy").attr("funzione", "faiAltro");
return;
}
if ( $("#Pulsy").attr("funzione") == "faiAltro")
{
alert("OK allora faccio altro()");
$("#Pulsy").val("Pulsy");
$("#Pulsy").attr("funzione", "faiQuesto");
return;
}
});
</script>
-
Scusa per l'errore che mi hai riportato ...
ecco un codice di esempio:
prima rendo invisibile il secondo pulsante , poi al click del primo inverto.
Codice HTML:
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#button2").css("visibility","hidden");
$("#button1").click(function(){
$(this).hide();
$("#button2").css("visibility","visible");
});
});
</script>
</head>
<body>
<button id="button1">Pulsante1</button>
<button id="button2">Pulsante2</button>
</body>
</html>
-
Ok grazie. Ci proverò :D Solo un ultima cosa: io ho questa stringa [html]<div id="voti"><?php echo $num_voti; ?></div>[/htm] come faccio ad aggornare il numero di voti senza aggiornare la pagina intera?
-
nel post precedente ti avevo già dato la soluzione..
una volta che il php è generato la pagina sarà formattata in html quindi il tuo codice sarà: <div id="voti">xx</div>
dove la xx è il numero di voti. Quindi AJAX restituisce il valore dei voti aggiornati che tu andrai a mettere nel div con document.getElementById("voti").innerHTML = nuovovuoto; se usi JS o $("#voti").html(nuovoVoto); se usi jQuery.
( nuovoVoto -> xmlhttp.responseText )
-
Ahaha hai ragione, infatti ho visto solo ieri il post precendete e ci sono riuscito. Grazie mille ancora ;)
PERò, HO UN ALTRO PROBLEMA: il <div id="voti"> <?php echo $num_voti; ?></div> deve aggiornarsi in base a quanti voti mette l'utente. Ad esempio, se già ci sono presenti 2 voti, la stringa <? echo $num_voti; ?> deve stampare il numero di voti e l'utente che non ha ancora votato va a premere "vota" e i voti diventano 3 senza aggiornare la pagina. Non so se sono stato chiaro. Come quando su facebook clicchi il tasto "Mi piace" e i mi piace da 8 diventano 9.
-
..........sempre il post precedende se vedi l'esempio , esegue proprio quello che dici ..............
inserisce un voto -> apri il DB leggi quanti voti ci sono -> somma i voti che ci sono a quello immesso -> aggiorna il DB e visualizza il risultato !
-
Tutto fatto, ho ricostruito un po di codice dell'altro post :wink: Grazie mille