Pereiti prie turinio

HTTP POST tuščias naudojant Ajax


Rekomenduojami pranešimai

Labas,

 

Yra one page application tipo puslapis ir jame kontaktinė forma:

<form id="main-contact-form" name="contact-form" method="post" action="sendemail.php">
             <div class="form-group">
               <input type="text" name="name" class="form-control" placeholder="" required>
             </div>
             <div class="form-group">
               <input type="email" name="email" class="form-control" placeholder="" required>
             </div>
             <div class="form-group">
             <input type="text" name="subject" class="form-control" placeholder="" required>
             </div>
             <div class="form-group">
               <textarea name="message" class="form-control" rows="8" placeholder="" required></textarea>
             </div>
             <button type="submit" class="btn btn-primary">Išsiųsti žinutę</button>
           </form>

 

Informacija iš formos turėtų nueiti į sendemail.php ir būti išsiųsta:

<?php

ini_set( 'display_errors', 1 );
error_reporting( E_ALL );

$name       = @trim(stripslashes($_POST['name'])); 
$from       = @trim(stripslashes($_POST['email'])); 
$subject    = @trim(stripslashes($_POST['subject'])); 
$message    = @trim(stripslashes($_POST['message'])); 
$to   	    = 'neaktualu';

//Testing HTTP POST
//echo ("$name, $from, $subject, $message");

$headers   = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/plain; charset=iso-8859-1";
$headers[] = "From: {$name} <{$from}>";
$headers[] = "Reply-To: <{$from}>";
$headers[] = "Subject: {$subject}";
$headers[] = "X-Mailer: PHP/".phpversion();

$headers = implode("\r\n", $headers);
mail($to, $subject, $message, $headers);

die;

Pastarasis puikiai veikia ir duomenys išsiunčia bet kuriuo atveju, tačiau naudojant Ajax funkcija kad viskas įvyktų tam pačiame puslapį neatveriant *.php niekas neateina iš POST arba jis tiesiog patampa tuščias. ID "main-contact-form" yra atsakingas už šį dalyką, tačiau aš neturiu jokių js žinių ir nežinau kaip ką taisyti...

var form = $('#main-contact-form');
form.submit(function(event){
	event.preventDefault();
	var form_status = $('<div class="form_status"></div>');
	$.ajax({
		url: $(this).attr('action'),
		beforeSend: function(){
			form.prepend( form_status.html('<p><i class="fa fa-spinner fa-spin"></i> Siunčiama</p>').fadeIn() );
		}
	}).done(function(data){
		form_status.html('<p class="text-success">Ačiū!</p>').delay(5000).fadeOut();
	});
});

 

Iš anksto AČIŪ!

Redagavo TheVukasLt
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kaip pvz paimk https://gist.github.com/ajtroxell/6731408 arba naudok kaip gatavą.

Imsiu, jei tai liks vienintelė išeitis, o dabar norėtusi surasti klaidą ir ją ištaisyti pasitelkiant tavo pavyzdžiu. :)

 

Bandžiau pakeisti sendemail.php POST priėmimą į (bet nieko nekeičia)

$name = $_POST['name'];
$from = $_POST['email'];
$subject = $_POST['subject'];
$message = $_POST['message'];
$to   		= ''

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Sveikas,

 

$.ajax({
type: 'POST',
url: $(this).attr('action'),
data: $('#main-contact-form').serialize(),
beforeSend: function(){
form.prepend( form_status.html('<p><i class="fa fa-spinner fa-spin"></i> Siunčiama</p>').fadeIn() );
}
}).done(function(data){
form_status.html('<p class="text-success">Ačiū!</p>').delay(5000).fadeOut();
});

 

Nenurodei duomenų, kuriuos siųsi (data) bei perdavimo tipo (type: POST)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...