我有一个由2个输入字段组成的表单提交ajax表单是假设刷新页面并淡入下载按钮,但它转到php文件'download.php'并在左上角显示数字1
由于我从输入中接收信息,我猜测1是成功而0是失败。我如何阻止它这样做并保持同一页/刷新。
TL; DR - 我有一个提交正确的表单并将信息发送到电子邮件ID,但它不会刷新页面,它会转到php文件并显示数字1以便成功。
请帮忙。
接下来是我的ajax php'download.php'代码,(它确实有php开启标签,因为某种原因没有显示在这里)
<?php
$name =$_POST['name'];
$email =$_POST['email'];
// Example
$HTML = '<table cellspacing="0" cellpadding="8" border="0" width="600" style="background:#EEE">
<tr>
<td>File Download</td>
<td></td>
</tr>
<tr>
<td>Name:</td>
<td>'.$name.'</td>
</tr>
<tr>
<td>email:</td>
<td>'.$email.'</td>
</tr>
</table>';
$from = 'emailid@gmail.com';
$to = "emailid@gmail.com";
$subject = "Solutions Enquiry by Mr/ Mrs : ".$name;
sendHTMLemail($HTML,$from,$to,$subject);
function sendHTMLemail($HTML,$from,$to,$subject)
{
// First we have to build our email headers
// Set out "from" address
$headers = "From: $from\r\n";
// Now we specify our MIME version
$headers .= "MIME-Version: 1.0\r\n";
// Create a boundary so we know where to look for
// the start of the data
$boundary = uniqid("HTMLEMAIL");
// First we be nice and send a non-html version of our email
$headers .= "Content-Type: multipart/alternative;".
"boundary = $boundary\r\n\r\n";
$headers .= "This is a MIME encoded message.\r\n\r\n";
$headers .= "--$boundary\r\n".
"Content-Type: text/plain; charset=ISO-8859-1\r\n".
"Content-Transfer-Encoding: base64\r\n\r\n";
$headers .= "Message-ID: <".$now." TheSystem@".$_SERVER['SERVER_NAME'].">\r\n";
$headers .= "X-Mailer: PHP v".phpversion()."\r\n";
$headers .= chunk_split(base64_encode(strip_tags($HTML)));
// Now we attach the HTML version
$headers .= "--$boundary\r\n".
"Content-Type: text/html; charset=ISO-8859-1\r\n".
"Content-Transfer-Encoding: base64\r\n\r\n";
$headers .= chunk_split(base64_encode($HTML));
// And then send the email ....
$sent=mail($to,$subject,"",$headers);
if($sent)
echo '1';
else
echo '0';
}
?>
答案 0 :(得分:2)
在JSFiddle示例中,您将忘记在沙箱中添加jQuery库。这就是为什么你的代码不起作用的原因。在纯JS中,没有像这样的选择器:$(&#39;#...&#39;)。
第二个问题是 - 你要添加
之后我在页面上没有任何刷新。
更新: 我建议您使用JSON将数据从服务器转换为客户端。添加:
dataType: 'json'
到您的$ .ajax电话和服务器端:
echo json_encode(array('status'=>1));
它可以帮助您从服务器向客户端脚本提供更多详细信息和数据。