|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jul 2010
Messaggi: 41
|
redirect in javascript
nella mia file .php ho questo codice:
<?php echo " <li class=\"like\"><a href='' onClick=\"if(confirm('Vuoi davvero cancellare \'$titolopost\'? ')){cancellaarticolo($idp); location.href='http://www.miosito.it/miapagina.php?parametro=$parametro'; }else{}\">Cancella</a></li>";}else{}\">Cancella</a></li>"; ?> Praticamente quando l'utente clicca su un link gli viene chiesta conferma se cancellare o no un testo da un database; se clicca su ok la funzione cancellaarticolo fa quello che deve fare (sicuro al 1000% che funziona) poi, in teoria, dovrebbe essere reindirizzato ad un altra pagina. Questo però non avviene. le variabili php vengono stampate correttamente, la console degli errori non segnala niente. le virgolette sono a posto. la funzione cancellaarticolo passa via ajax un parametro ad un altro file php che cancella dal database (e funziona). cosa c'è che non va? anzichè essere reindirizzati alla pagina specificata viene aggiornata semplicemente la pagina stessa... è perchè prima della chiamata a location.href viene usato ajax? Ultima modifica di guido.d : 10-09-2011 alle 19:33. |
|
|
|
|
|
#2 | |
|
Member
Iscritto dal: Apr 2011
Messaggi: 59
|
Quote:
Può essere che l'errore sia lì? |
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Jul 2010
Messaggi: 41
|
significa che se l'utente preme annulla nella finistrella che compare non deve essere eseguita nessuna istruzione... mettercelo o no non cambia niente... inoltre non ci sono errori di sintassi...
|
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Apr 2010
Messaggi: 163
|
Occhio, che l'ultimo pezzo l'hai scritto due volte:
cancella l'ultima parte: Codice:
;}else{}\">Cancella</a></li>
Poi, di solito ajax si usa per non far ricaricare tutta la pagina; ma se poi vuoi far ricaricare la pagina, tanto vale fare direttamente il redirect a: Codice:
location.href='cancella.php?id=$idp' Ciao!
__________________
MSI B550-A PRO|Ryzen™ 5 3600|Freezer 13 PRO|RX 6600|CORSAIR CX600|Crucial P3 Plus 1TB|BL2K8G32C16U4B 3200 MHz|Q27G2G4
Ultima modifica di alemoppo : 12-09-2011 alle 00:51. |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Jul 2010
Messaggi: 41
|
l'ultima parte nel file vero non è ripetuta, è stato un mio errore quando l'ho riportato sul forum... lo so che ajax serve x non fare ricaricare la pagina (infatti è proprio quello che non voglio) però succede! invece che essere eseguito il redirect la pagina viene ricaricata.
|
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Apr 2010
Messaggi: 163
|
L'avevo immaginato; infatti ieri volevo editare...
Comunque, quindi in javascript sarebbe: Codice:
cancellaarticolo($idp); location.href='http://www.miosito.it/miapagina.php?parametro=$parametro'; Comunque ripeto: non è meglio (e più semplice) inviare i dati direttamente alla pagina tramite una normale richeista (non ajax), per poi far effettuare il redirect alla pagina "miapagina.php" da php? (visto che comunque, dopo vuoi fare un redirect). Ciao!
__________________
MSI B550-A PRO|Ryzen™ 5 3600|Freezer 13 PRO|RX 6600|CORSAIR CX600|Crucial P3 Plus 1TB|BL2K8G32C16U4B 3200 MHz|Q27G2G4
Ultima modifica di alemoppo : 12-09-2011 alle 14:46. |
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Jul 2010
Messaggi: 41
|
problema risolto... il redirect non avviene in quanto l'oggetto cliccato è un link, e quindi il browser "segue" quello. se tolgo il link e metto l'onclick al <li> funziona tutto come dovrebbe.
|
|
|
|
|
|
#8 |
|
Member
Iscritto dal: Apr 2010
Messaggi: 163
|
Ok.
Comunque, nell'onclick, se metti alla fine "return false", dovrebbe funzionare... Esempio: Codice HTML:
<a href='#' onClick='funzione_ajax(); return false;'>click</a> Ciao!
__________________
MSI B550-A PRO|Ryzen™ 5 3600|Freezer 13 PRO|RX 6600|CORSAIR CX600|Crucial P3 Plus 1TB|BL2K8G32C16U4B 3200 MHz|Q27G2G4
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:09.




















