Posted: 18.12.2008 02:54 Post subject: Kako na klik button-a pokrenuti neku PHP funckiju?
Eh sad nisam naslov najbolje sastavio al neznam kak bolje opisat sto zelim.
Zelim postici to da kad korisnik salje mail da kad klikne submit da ga stranica ne vodi do neke php skripte koja skuplja podatke i salje mail pa ga ponovo redirekta na pocetnu stranicu. Nego da salje mail bez ucitavanja druge stranice, da posalje mail a ostane na istoj stranici. Znac na klik gumba da pokupi podatke iz polja, pospremi ih u varijable i pokrene php mail() funkciju koja mi salje mail bez da ucitava neku vanjsku php skriptu. Sad tu sam php funckiju kompletnu prekopirao ispod mail forme u html, tj. mora sad bit php fajl i ne znam kako pokrenut tu mail funkciju koja ce pokupit korisnikove podatke i poslat mi ih.
Evo koda:
<form action="WTF SHOULD I PUT HERE?!?!?" method="post" onsubmit="alert('Your message is sent, I will redirect you to the first page now. Thank you.')">
Tu sam ja sad stvorio neku funkciju send() koja se pokrece na submit i pokrece tu mail funkciju al znam da to nece radit.
I znam da je JavaScript client side a php server side...
Jel zna netko kako ovo napravit? I jesam li na dobrom putu?
Dakle staviš recimo "send.php" i kad klikneš submit browser će se preusmjeriti na tu stranicu, a u POST varijablama ćeš imati vrijednosti iz forme.
Ovo što ti želiš se može napraviti ali trebaš koristiti AJAX request ili trik sa iframeom. Ima ovdje ekipe koja će ti to objasnit bolje nego ja . Uglavnom potraži jQuery ili mooTools-e, znam da je pomoću njih relativno lako "počupati" vrijednosti iz polja i složiti AJAX request koji poziva vanjsku skriptu a da posjetitelj to ne vidi.
function addToLightbox(unique_id) {
var lightbox_old = $('lightbox_old').get('value');
var lightbox_new = $('lightbox_new').get('value');
lightbox_request = new Request({url:"/includes/lightboxPopup.php", method: 'post', onSuccess: addToLightboxSuccess});
lightbox_request.send("lightbox_new="+lightbox_new+"&lightbox_old="+lightbox_old+"&lightboxSubmit=true&unique_id="+unique_id);
}
U našem slučaju radio se o lightboxu, ali ista stvar... dakle koristio sam mooToolse.
Code:
var name = $('name').get('value');
var email = $('email').get('value');
var topic = $('topic').get('value');
var comments = $('comments').get('value');
tu počupaš vrijednosti iz polja... onda u druge dvije linije kreiraš request..
Code:
request = new Request({url:"send.php", method: 'post', onSuccess: TuIdeNekaAlertFunkcija});
request.send("name="+name+"&email="+email+"&topic="+topic+"&comments="+comments);
To bi trebalo bit to...
EDIT: e da, sad vidim da nemaš ID atribute na INPUT-ima, stavi ih da budu isti kao i NAME inače ih mooToolsi neće moći pročitati
Odlicno, hvala ti puno PaNtHeR, znao sam da za to treba AJAX kako bi komunicirao sa serverom bez da ucitavam stranicu i znam da treba koristit XMLHttpRequest object samo nisam bas znao kak to tocno treba izgledat.
Hvala sto si mi pojasnio sad mi je skroz jasno tocno sta treba napravit, napravit cu prvo to u cistom JS da vidim kako tamo funkcionira pa cu onda radit sa Jqueryem
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum