PDA

View Full Version : [Javascript] Passare dati raccolti ad una pagina


filippoalessi
02-06-2012, 21:31
Salve a tutti, dato che questo è il mio primo messaggio mi presento, mi chiamo Filippo e programmo per passione. Ieri mentre provavo jquery mi sono bloccato ad un punto. Il codice in questione è il seguente:


function loginerrato() {
$.msgBox({ type: "prompt",
title: "Login errato, riprova",
inputs: [
{ header: "User Name", type: "text", name: "userName" },
{ header: "Password", type: "password", name: "password" },
{ header: "Ricorda i dati", type: "checkbox", name: "rememberMe", value: "theValue"}],
buttons: [
{ value: "Login" }, { value: "Annulla"}],
success: function (result, values) {
var v = result + " has been clicked\n";
$(values).each(function (index, input) {
v += input.name + " : " + input.value +
(input.checked != null ? (" - checked: " + input.checked) : "") + "\n";
});
alert(v);
}
});
}


In pratica si apre una box dove chiedo di inserire i dati, e poi in v ci sono tutti i dati inseriti dall'utente. Siccome non ho mai programmato nella mia vita in javascript mi sono bloccato! Praticamente vorrei passare ogni singolo dato raccolto in una pagina in php, naturalmente per poi elaborare la richiesta in php. Quindi la mia domanda è: avete un codice in modo che passo con post (ajax va bene) ogni singolo dato raccolto che io ho raccolto ad un file php? Non so proprio niente di Javascritp sono un programmatore PHP, scusate per la mia incompetenza in questo linguaggio. Grazie in anticipo ragazzi!

Mettiu_
02-06-2012, 21:39
C'è la chiamata ajax() di jQuery. La documentazione la trovi qui (http://api.jquery.com/jQuery.ajax/). Alla fine ci sono anche degli esempi che ti fanno vedere come usarla in concreto.

filippoalessi
02-06-2012, 21:48
Intanto grazie :D Sì conoscevo ajax ma non so come implementare le variabili di javascript sull'ajax.
Ho visto questo esempio:

$.ajax({
type: "POST",
url: "some.php",
data: { name: "John", location: "Boston" }
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});

In pratica le variabili si devono mettere su data: {} purtroppo però non riesco a capire come si chiamano le variabili contenenti i dati precedenetemente scritti. Capisco che su v ci sono tutti, ma siccome a me servono i dati ad uno ad uno, come si chiamano le variabili dell'User Name e della password? Grazie ancora :D

Mettiu_
02-06-2012, 22:29
Prova così:
function login()
{
var nick;
var password;
$.msgBox({ type: "prompt",
title: "Login errato, riprova",
inputs: [
{ header: "User Name", type: "text", name: "userName" },
{ header: "Password", type: "password", name: "password" },
{ header: "Ricorda i dati", type: "checkbox", name: "rememberMe", value: "theValue"}],
buttons: [
{ value: "Login" }, { value: "Annulla"}],
success: function (result, values) {
var v = result + " has been clicked\n";
$(values).each(function (index, input) {
if(input.name == 'userName')
nick = "" + input.value;
else if(input.name == 'password')
password = "" + input.value;
//v += input.name + " : " + input.value + (input.checked != null ? (" - checked: " + input.checked) : "") + "\n";
});
//alert(v);
$.ajax({
type: "POST",
data: { user: nick, password: password },
url: 'login.php',
success: function(data) {
// Fai qualcosa con la risposta, il cui contenuto è 'data'
alert(data);
}
});
}
});
}
Ho commentato le istruzioni inutili e ho supposto che la pagina php si chiami login.php. Ho dichiarato due variabili nick e password che vengono riempite con l'input dell'utente e inviate alla pagina php tramite metodo post. Il risultato della pagina PHP è dentro la variabile data.
Spero sia utile :)

Mettiu_
02-06-2012, 22:35
Ah dimenticavo, prima della chiamata ad ajax (dopo l'alert che ho commentato), mettici un bell' if:
if(result == "Annulla")
return;
Altrimenti prova a loggarsi anche se l'utente schiaccia Annulla :D

filippoalessi
02-06-2012, 22:40
Sei un grande!!! Ti ringrazio tantissimo! Non so come ringraziarti!!! Ciaoooo

Mettiu_
02-06-2012, 22:45
Figurati, l'importante è che hai risolto!! :)