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.

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