Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    10

    [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
    	},
    	.....
    });
    Ora il mio quesito è questo: siccome vorrei che si potesse votare anche con javascript disabilitato, il file file.php deve restituire degli output differenti a seconda che io stia utilizzando jQuery o meno.
    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!!!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    10
    non ci credo che non ci sia nessuno che sappia darmi un consiglio!!!!

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    se javascript è disabilitato non puoi manipolare i dati se non con php ovviamente e quindi fai tutto alla vecchia maniere submit che passa i dati a php... per capire da dove provieni basta passare un parametro che ne indichi la provenienza. Se intendevi qualcos'altro allora non ho capito il problema.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    10
    Originariamente inviato da Vindav
    se javascript è disabilitato non puoi manipolare i dati se non con php ovviamente e quindi fai tutto alla vecchia maniere submit che passa i dati a php... per capire da dove provieni basta passare un parametro che ne indichi la provenienza. Se intendevi qualcos'altro allora non ho capito il problema.
    ciao! prima di tutto grazie per la risposta....

    allora, il punto è questo:

    Posso trovarmi in 2 situazioni: js abilitato o js disabilitato. quando invio i dati a pagina.php (ad esempio: pagina.php?a=1&b=2), questa mi deve rispondere con:
    1) una pagina completa, se ho js disabilitato;
    2) un <div> (che inserirò per aggiornare la pagina) se ho js abilitato.


    soluzioni:

    1) uso la stessa pagina (sia con js ON che con js OFF), in questo modo:
    pagina.php?a=1&b=2&js_enabled=yes
    in modo che la pagina capisca se sto utilizzando js o meno;

    2) uso due pagine diverse
    pagina.php?a=1&b=2 (con js ON)
    pagina2.php?a=1&b=2 (con js OFF)


    Ecco, in pratica vorrei sapere quale delle due soluzioni/tecniche si utilizza in genere, oppure se si utilizzano altre soluzioni/tecniche (ad esempio, manipolando la variabile "data" all'interno di success)

    Grazie ancora!!!!

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    10
    girovagando qua e la ho analizzato un sito dove è presente un sistema di votazione con le stelle. effettivamente si utilizza la prima soluzione

    con js abilitato
    pagina.php?a=1&b=2&task=ajax_rate

    con js disabilitato
    pagina.php?a=1&b=2&task=rate

    in modo tale che pagina.php capisca che output debba fare. Pensavo esistessero altre tecniche....


    Grazie mille a tutti, soprattutto a Vindav !!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    Se nella pagina utilizzi pesantemente js allora ti consiglio di crearti una pagina a parte. Se non è cosi allora fai tutto nella stessa pagina.

    ad esempio, manipolando la variabile "data" all'interno di success
    Qui non riesco a seguirti con "success" cosa intendi? parli della chiamata ajax? se si come fai a manipolare i dati con js disabilitato? la chiamata ajax non potra mai funzionare perche è pur sempre scritta in js.

    js abilitato:
    - invio dati con ajax e parametro js_enable=true, gestisco dati inviati da php con jquery

    js disabilitato:
    - invio dati con submit js_enable=false (ricarico la pagina) , gestisco dati inviati da php con php incorporato nella pagina

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    10
    per success dai un'occhiata al primo post del topic. In pratica io avevo intenzione di fare così:

    1) js disabilitato: metodo tradizionale, chiamo pagina.php?a=1&b=2 che mi restituisce una pagina html INTERA.

    2) js abilitato: tramite ajax, chiamo pagina.php?a=1&b=2 che mi restituisce ancora una pagina html INTERA (perchè non volevo modificare il codice che c'è in pagina.php). stavolta la pagina html intera la ritrovo nella variabile "data" (guarda sempre il codice del primo post). ecco, io volevo sapere se esisteva un metodo per "maneggiare" quella variabile "data" (che non è altro che una stringa che contiene tutto l'html della pagina intera) ed estrapolare solo il div che mi serve.

    è conveniente (si usa) fare così, oppure è più conveniente (si usa) informare pagina.php circa il contenuto che mi deve restituire?

    spero di essermi spiegato al meglio....

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    finalmente ho capito cosa intendevi Penso sia piu conveniente informare la pagina php. utilizzando il primo metodo andresti a lavorare su una mega stringona di quale una larga parte ti è completamente inutile. Per di piu se in futuro dovrai effettuare delle modifiche ti bastera modificare la parte php lasciando intatta la parte client.

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    10
    bene! ti ringrazio tanto....però per tua sfortuna ho un altra domanda. Ammettiamo il caso in cui io faccia una richiesta ajax e stavolta devo aggiornare la pagina in due punti diversi.
    In pratica la mia pagina.php?a=1&b=2 mi deve restituire due <div> (o due "altre cose") che però andranno posizionati in punti diversi della mia pagina che devo aggiornare. Come fare? uso sempre la stessa tecnica? in data avrò quindi due <div> (o due "altre cose"), e come li posso manipolare dato che "data" è sempre una stringa??

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    in questo caso puoi usare un oggetto json:

    mettiamo che php mi torni un oggetto di questo tipo:

    "primodiv":"<div>Primo div</div>","secondodiv":"<div>Secondo div</div>"

    codice:
    $.ajax({
    	success: function(data, status, jqXML) {
    data.primodiv //recupero primo div
    data.secondodiv //recupero secondo div
    	},
    });

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.