2015-04-06 102 views
0

下面的脚本有助于处理一个请求数字和名称值的表单,并将它发送到process.php并显示一个确认并隐藏将该模式触发的按钮该表单如此用户不能重新填写表单。值没有被传递到process.php

脚本来处理将数据传递给process.php

$(document).ready(function() { 

function successHandler(){ 
    console.log('Success'); 
    $("#thanks").html(msg); 
    $('#form-content').modal('hide'); 
} 

function errorHandler(){ 
    console.log('Error'); 
    alert("Error"); 
} 

var nameval = $('#name').val(); 
var numberval = $('#number').val(); 

$("form#contact").submit(function(){ 
    $.ajax({ 
     type: "POST", 
     url: "process.php", 
     data: { 
      name: nameval, 
      number: numberval, 
      submit: true 
     }, 
     success: function(msg){ 
      $("#thanks").html(msg); 
      $('#form-content').modal('hide'); 
      return false; 
     }, 
     error: function(){ 
      alert("Error"); 
      return false; 
     } 
    }); 
    return false; 
    }); 
}); 

整个动作不产生从process.php脚本的HTML电子邮件,但不包括从形式捕获的数据,我相信这个脚本中有一个错误,因为我无法在表单或process.php上找到任何使用PHPMail()做错任何事情的东西。

你能帮忙吗?

更新

<?php 
if (isset($_POST['submit'])) { 
$name = ($_POST['name']); 
$number = ($_POST['number']); 
echo "<span class=\"alert alert-success\">THANKS! SUBMITTED</span>"; 

$to = "EMAIL BLANKED"; 
$subject = "Alert!"; 

$message = "name: $name number: $number"; 

// Always set content-type when sending HTML email 
$headers = "MIME-Version: 1.0" . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
// More headers 
$headers .= 'From: <email blank>' . "\r\n"; 

mail($to,$subject,$message,$headers); 
} 
else { echo '<div class="alert alert-error">Error</div>' ; } 
?> 
+0

没有JS错误? – 2015-04-06 13:28:17

+0

更新问题连同你的'PHP'代码,即使没有错误,然后给你的'url'中的完整路径 – 2015-04-06 13:28:49

+0

你能分享你的php代码吗? – 2015-04-06 13:29:30

回答

2

你应该把这个两行:

var nameval = $('#name').val(); 
var numberval = $('#number').val(); 

提交函数中这样

$("form#contact").submit(function(){ 
var nameval = $('#name').val(); 
var numberval = $('#number').val(); 

,因为如果你设置的变量的值在提交表格之前,输入将会是mos t可能是空的。

+0

谢谢指出出来了!它解决了这个问题。 – KP2012 2015-04-06 13:38:56