|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2006
Città: Prov.Cagliari
Messaggi: 1583
|
[jQuery - php] Aggiornare pagina dopo richiesta AJAX
Salve ragazzi, avrei una questione da porvi, più che altro un consigio/soluzione.
Sto sviluppando un plugin per phpBB, un forum open source. Parte di questo plugin riguarda la votazione, da parte degli utenti, dei topic presenti nel forum. La votazione è realizzata col sistema delle stelle (da 1 a 5): ho utilizzato jQuery per implementare la grafica e per fare la richiesta AJAX. Il funzionamento è il seguente: 1) nel file.html ho un form con i radio button e il pulsante Submit per sottomettere il form ad una pagina file.php 2) nel file.js c'è: a) la parte che "trasforma" i radio button in stelle; b) la parte che gestisce la chiamata AJAX (tramite la funzione $.ajax() ); Codice:
$.ajax({
.....
success: function(data, status, jqXML) {
// data sono i dati restituiti dalla pagina file.php (è una stringa che contiene html),
// che mi servono per modificare la pagina file.html in base a quello che è accaduto
},
.....
});
Ecco, io ora vorrei un consiglio su come potrei far questo, cioè dire alla mia pagina file.php "ora sto utilizzando jquery quindi restituiscimi questo" oppure "ora non sto utilizzando jquery, quindi restituiscimi una pagina html completa". Oppure far restituire sempre la stessa pagina, e poi manipolare la variabile data (sempre che si possa)? Voi come fareste? Io ho già pensato a delle soluzioni... Una cosa, tanto per iniziare: come potrei manipolare i dati contenuti all'interno della variabile data, se questi sono in formato html??? Grazie mille a tutti!!!!
__________________
MB: ASUS Prime x570-P - CPU: AMD Ryzen 9 3900x with Arctic Liquid Freezer II 240 - Memorie: G.Skill Ripjaws DDR4 2x16GB 3200 - HDs: Samsung 970 EVO plus and Crucial P2 1TB - Ali: Seasonic Focus GX-650 - Video: AMD Asus GTX770 Direct CU II - Concluso Positivamente con : M@x27, mirco2034, max x2, relativo, Mighty Max e tanti altri |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2006
Città: Prov.Cagliari
Messaggi: 1583
|
UP!
__________________
MB: ASUS Prime x570-P - CPU: AMD Ryzen 9 3900x with Arctic Liquid Freezer II 240 - Memorie: G.Skill Ripjaws DDR4 2x16GB 3200 - HDs: Samsung 970 EVO plus and Crucial P2 1TB - Ali: Seasonic Focus GX-650 - Video: AMD Asus GTX770 Direct CU II - Concluso Positivamente con : M@x27, mirco2034, max x2, relativo, Mighty Max e tanti altri |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Apr 2010
Messaggi: 163
|
Beh, dunque: iniziamo col dire che lato PHP non sai se l'utente ha abilitato/supporta JS, a meno che ad esempio non fai una pagina che invia un segnale tramite ajax (se il segnale lo ricevi ha js abilitato, altrimenti no)... {ma questa è una porcheria, IMHO}....
Quindi è bene agire lato client. Una possibile soluzione è usare il tag html <noscript> in questo modo: Codice HTML:
<script> ... //stampi il form con il document.write('<form action="" ...'); ... </script> <noscript><form action="" ...></noscript> Codice HTML:
...
document.write("<input type='hidden' name='javascript' value='abilitato'>");<!-- ovviamente puoi settare benissimo a 1 / 0, oppure quello che vuoi :P -->
...
<noscript>
...
<input type='hidden' name='javascript' value='disabilitato'><!--idem come sopra -->
...
__________________
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 : 15-04-2011 alle 13:31. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2001
Città: Boscoreale (NA)
Messaggi: 421
|
senza offesa ma chi ormai non ha il java abilitato?
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Apr 2010
Messaggi: 163
|
Credimi che c'é gente che naviga per internet con js disabilitato... (principalmente per paura di virus, pubblicità e/o popup).
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 : 16-04-2011 alle 16:58. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:07.



















