| Visa föregående ämne :: Visa nästa ämne |
| Startad av: |
Meddelande |
ncc1701e
Medlem i: 2441 dagar
Status: Offline
#724676
|
Skrivet: 2012-07-23 12:26
Ämne: JS till PHP post ???
|
|
|
Hej.
Är nog jag som är ganska korkade... men hur fan får man över js till php för att sedan stoppa in i db ?..
Min validering ser ut så här ..
(function($,W,D)
{
var JQUERY4U = {};
JQUERY4U.UTIL =
{
setupFormValidation: function()
{
//form validation rules
$("#register-form").validate({
rules: {
firstname: "required",
lastname: "required",
email: {
required: true,
email: true
},
password: {
required: true,
minlength: 5
},
agree: "required"
},
messages: {
firstname: "Please enter your firstname",
lastname: "Please enter your lastname",
password: {
required: "Please provide a password",
minlength: "Your password must be at least 5 characters long"
},
email: "Please enter a valid email address",
agree: "Please accept our policy"
},
submitHandler: function(form) {
/* form.submit(); */
// Här skall väl det vara ??
}
});
}
}
//when the dom has loaded setup form validation rules
$(D).ready(function($) {
JQUERY4U.UTIL.setupFormValidation();
});
})(jQuery, window, document);
</script> |
|
|
|
| Till toppen på sidan |
|
marabou


Medlem i: 3153 dagar Från: Sveriges framsida
Status: Offline
#724677
|
Skrivet: 2012-07-23 13:14
Ämne:
|
|
|
Skall det gå med "AJAX", alltså utan sidladdning eller skall man komma till en ny sida?
Är det AJAX så kan du använda jQuery.post (http://api.jquery.com/jQuery.post/)
Annars använder du form.submit som du har avkommenterat.
Senast ändrad av marabou den 2012-07-23 14:30, ändrad totalt 1 gång |
|
|
_________________ "Never argue with stupid people. They will bring you down to their level and beat you with experience."
- Mark Twain |
| Till toppen på sidan |
|
ncc1701e
Medlem i: 2441 dagar
Status: Offline
#724680
|
Skrivet: 2012-07-23 14:02
Ämne:
|
|
|
Yepp är ajax.
Jag vill att den skall skicka alla variabler till låt säga.. process.php där den lägger in dem i SQl och sen bekräftar registreringen. |
|
|
|
| Till toppen på sidan |
|
marabou


Medlem i: 3153 dagar Från: Sveriges framsida
Status: Offline
#724681
|
Skrivet: 2012-07-23 14:33
Ämne:
|
|
|
Har du kollat på den länken jag postade? Där har du svaret!
Endast en rad kod behövs. |
|
|
_________________ "Never argue with stupid people. They will bring you down to their level and beat you with experience."
- Mark Twain |
| Till toppen på sidan |
|
ncc1701e
Medlem i: 2441 dagar
Status: Offline
#724682
|
Skrivet: 2012-07-23 14:37
Ämne:
|
|
|
Yepp..
submitHandler: function(form) {
/* form.submit(); */
var username = $("#username").val();//Get the value in the username textbox
var lastname = $("#lastname").val();
var dataString = 'username='+ username + '&lastname='+ lastname;
$.ajax({ //Make the Ajax Request
type: "POST",
url: "process.php", //file name
data: dataString,
})
}
Men nu skickar han inte vidare till process.php . . hmm
la till success: success efter data... verkar funkar bättre  |
|
|
|
| Till toppen på sidan |
|
marabou


Medlem i: 3153 dagar Från: Sveriges framsida
Status: Offline
#724683
|
Skrivet: 2012-07-23 14:58
Ämne:
|
|
|
Du skulle ju inte skicka vidare?? Du skulle ju ha ajax?
Om du har både ajax och skickar vidare till samma php-fil så postas ju formuläret två gånger. Eller har jag missat något? |
|
|
_________________ "Never argue with stupid people. They will bring you down to their level and beat you with experience."
- Mark Twain |
| Till toppen på sidan |
|
ncc1701e
Medlem i: 2441 dagar
Status: Offline
#724693
|
Skrivet: 2012-07-24 04:37
Ämne:
|
|
|
Nej men alltså..
hmm nu blev jag osäker..
From action=process.php
sen Post jag till Process.php som tar emot variablerna så jag kan lägga in dem i db ?
Finns det något annat sätt ? om hur skall jag då skriva koden ?
Det ända egentligen jag vill är att efter allt stämmer .. släng in värderna i db och visa ett meddelande att registreringen lyckades & skicka användaren vidare till sin "profilsida" |
|
|
|
| Till toppen på sidan |
|
marabou


Medlem i: 3153 dagar Från: Sveriges framsida
Status: Offline
#724699
|
Skrivet: 2012-07-24 10:57
Ämne:
|
|
|
Det vanliga "klassiska" sättet är ett vanligt "post"-formulär. Då skickas besökaren till en annan sida (t.ex. process.php) som tar emot data från formuläret, behandlar den och visar något nytt för besökaren.
För detta behöver du i sin enklaste form, ett formulär och en submit-knapp. Vill du posta formuläret via javascript använder du form.submit() som du har i din kod men den är avaktiverad (kommenterad).
Det "nya" sättet att posta formulär "Web 2.0" är med AJAX. Det betyder "Asynchronous Javascript And Xml" och innebär att formuläret skickas "i bakgrunden" och besökaren stannar kvar på sidan utan omladdning. När man får svar från servern (i bakgrunden) kan man t.ex. visa ett meddelande på den aktuella sidan. Vill du använda detta är det jQuery.post eller jQuery.ajax som du skall använda. |
|
|
_________________ "Never argue with stupid people. They will bring you down to their level and beat you with experience."
- Mark Twain |
| Till toppen på sidan |
|
ncc1701e
Medlem i: 2441 dagar
Status: Offline
#724710
|
Skrivet: 2012-07-24 13:55
Ämne:
|
|
|
Oki.
Menar du då att jag skall
form.submit(
$.ajax({
type: "GET",
url: "process.php",
data: dataString,
success: success
});
// Sen måste det väl ligga någon success true & false på process sidan , som han sedan skickar tillbaka om allt gick rätt till på process.php ?
); |
|
|
|
| Till toppen på sidan |
|
marabou


Medlem i: 3153 dagar Från: Sveriges framsida
Status: Offline
#724713
|
Skrivet: 2012-07-24 14:06
Ämne:
|
|
|
Du får bestämma dig för en metod. Antingen form.submit (vanligt formulär som postar besökaren vidare till en annan sida) eller $.ajax som postar formuläret i bakgrunden utan att skicka besökaren vidare. Du ska inte använda båda!
Om du använder form.submit() så skall din process.php ge en helt ny sida till användaren. Han lämnar alltså den sidan han var på och skall presenteras med en ny sida, som t.ex. ger ett meddelande att det gick bra/dåligt.
1: submitHandler: function(form) {
2: form.submit();
3: }
|
Använder du AJAX så måste process.php ge ett svar som du kan tolka i din success-metod. Det kan vara så enkelt som "OK" eller "FEL" eller så kan det vara xml-data med nya värden som du använder i javascript-funktionen för att uppdatera på sidan.
1: submitHandler: function(form) {
2: 3: var username = $("#username").val();//Get the value in the username textbox
4: var lastname = $("#lastname").val();
5: 6: var dataString = 'username='+ username + '&lastname='+ lastname;
7: 8: $.ajax({ //Make the Ajax Request
9: type: "POST",
10: url: "process.php", //file name
11: data: dataString,
12: success: function (data, status) {
13: alert(data); // Här skriver du ut resultatet från process.php
14: }
15: });
16: }
|
|
|
|
_________________ "Never argue with stupid people. They will bring you down to their level and beat you with experience."
- Mark Twain |
| Till toppen på sidan |
|
ncc1701e
Medlem i: 2441 dagar
Status: Offline
#724795
|
Skrivet: 2012-07-26 15:41
Ämne:
|
|
|
Tack marabou för alla dina svar/inlägg.
Då kör vi med
$.ajax({ //Make the Ajax Request
type: "POST",
url: "process.php", //file name
data: dataString,
success: function (data, status) {
alert(data); // Här skriver du ut resultatet från process.php
}
})
hur skall det så i process.php efter
$sql = "INSERT INTO bud_users(firstname,lastname)
VALUES('{$firstname}','{$lastname}')";
mysql_query($sql) or die("error");
den borde väl returnera status ? om hur ?
Sen hur går man vidare då sql dör & det blir error, då vill man ju gärna returnera detta. |
|
|
|
| Till toppen på sidan |
|
ncc1701e
Medlem i: 2441 dagar
Status: Offline
#724933
|
Skrivet: 2012-07-31 14:51
Ämne:
|
|
|
Alltå..
i proccess.php måste ju den säga till om det är success eller inte med sql körningen,, om inte så kan ju inte scriptet bli success.. men hur fasiken skall man göra ?.. och hur hantera man datan då ?
Tips snälla ? |
|
|
|
| Till toppen på sidan |
|
marabou


Medlem i: 3153 dagar Från: Sveriges framsida
Status: Offline
#724934
|
Skrivet: 2012-07-31 15:05
Ämne:
|
|
|
I process.php kör du echo "success"; om det lyckades eller echo "failure"; om det misslyckades.
Om du sen har alert(data) i success-funktionen så kommer du se om det lyckades eller inte.
Du kan också köra echo "ay caramba!"; och echo "uh oh!" eller echo "jomenvisst!"; och echo "aj aj aj"; eller vilka meddelanden du själv önskar, så länge du hanterar dem i success-funktionen i javascript.
(success-funktionen i javascript/jQuery betyder att anslutningen lyckades och att den fick svar från servern, om du behöver hantera felmeddelanden från servern skall du göra det i success-funktionen) |
|
|
_________________ "Never argue with stupid people. They will bring you down to their level and beat you with experience."
- Mark Twain |
| Till toppen på sidan |
|
ncc1701e
Medlem i: 2441 dagar
Status: Offline
#724935
|
Skrivet: 2012-07-31 15:15
Ämne:
|
|
|
Tack för ditt snabba svar.
Så alltså i process.php
efter:
mysql_query($sql) or die("error");
echo "success";
om nu error
så
echo "failure";
/////////////
Min fråga är hur hämtar success upp echo "success" eller failure från process.php ?
success: function (data, status) {
alert(data);
}
om då failure ?
hur visa detta , då låt säga att sql inte gick igenom ? |
|
|
|
| Till toppen på sidan |
|
marabou


Medlem i: 3153 dagar Från: Sveriges framsida
Status: Offline
#724936
|
Skrivet: 2012-07-31 16:00
Ämne:
|
|
|
allt som skrivs ut från process.php kommer finnas i variabeln data i success-funktionen. Om process.php skickar ett felmeddelande så får du kolla det i success-funktionen.
"Success" i ajax/jQuery betyder att anslutningen/anropet till process.php har utförts. Vad process.php skrev ut finns i variabeln data.
Därför skrev jag alert(data) så du ser om det blev "success" eller "failure".
Istället för att alerta ut det så kan du ju kolla med en if-sats:
1: success: function (data, status) {
2: 3: if (data == "success") {
4: alert("Postningen till process.php lyckades");
5: }
6: else if (data == "failure") {
7: alert("Postningen till process.php misslyckades");
8: }
9: else
10: {
11: alert("Postningen till process.php returnerade varken success eller failure!");
12: }
13: 14: }
|
|
|
|
_________________ "Never argue with stupid people. They will bring you down to their level and beat you with experience."
- Mark Twain |
| Till toppen på sidan |
|
|