PDA

View Full Version : Utilizzare sia PHP che JQuery?


MaxwellHammerSilver
12-05-2015, 13:08
Ciao a tutti, sto realizzando una slide di testo per presentare un mio progetto.
Nella pagina c'è un div principale che conterrà il testo di ogni singola slide.
I contenuti della slide li ho salvati in un database.
Io voglio fare questa operazione:
Quando clicco la freccia per visualizzare la slide successiva, si deve prendere con PHP il contenuto della slide e salvarla in una variabile.
Successivamente con jquery, selezionerò il div principale e sostituirò il contenuto.

Ho dei problemi:
1-Come faccio a richiamare php al click della freccia? Io gli eventi con php fino ad ora li ho assegnati solo ai form.

Se il mio modo non è sufficiente per ottenere il mio obiettivo, proponete le vostre vie.
grazie a chi mi risponderà.

wingman87
12-05-2015, 13:36
Provo a fare un po' di chiarezza...
Il codice php viene eseguito solo nel momento in cui fai una richiesta al server. Con javascript (usando jquery se preferisci) puoi effettuare una richiesta al server in modo che venga eseguito il codice php corrispondente e mettere la risposta nel tuo div.

Con jquery puoi usare il metodo ajax, che è il più generico, oppure nel tuo caso penso tu possa usare semplicemente load:
http://api.jquery.com/jQuery.ajax/
http://api.jquery.com/load/

Per agganciarti all'evento click sulla freccia semplicemente usi click:
http://api.jquery.com/click/

Quindi riassumendo: con click aggiungi un handler al click sulla freccia. Nell'handler fai una richiesta al server (con ajax o load) e metti il risultato nel div.

Zeppe79
12-05-2015, 14:43
Vuoi usare jQuery per evitare che il cambio slide debba essere fatto ricaricando la pagina ? E magari aggiungendo animazioni ?

Cmq, puoi usare il metodo ajax in una funzione sincrona per chiedere al server il contenuto della sllide, ad esempio


function getSlide (slide_id){
var output;
jQuery.ajax({
url: '/url/to/php/script',
async: false,
type: 'POST',
data: {
slide_id: slide_id
},
success: function(response) {
output = response;
},
error:function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
return output;
}


lo script php prenderà in ingresso la variabile slide_id, metodo POST, interrogherà il db e restituirà il contenuto


La funzione ajax viene richiamata attraverso il click sul tasto


$(document).ready(function(){

$("#nextBtn").click(function(){
var content = getSlide(X);
$("#slideContainer").html(content);
});
})



Ci sono però un sacco di cose da implementare: sicurezza della chiamata ajax, validazione input php, memorizzazione temporanea della variabile slide_id corrente da qualche parte, animazione jQuery

Spero di averti dato un piccolo spunto, per far le cose fatte bene però è meglio se ti leggi un po' di documentazione