2013-12-18 42 views
0

我使用了一个引导模板,它具有索引页中的所有页面代码,并通过在索引页中使用id来重定向所有页面的标签。在联系表单选项卡部分,我创建了一个表单来执行文件上传,在我提交表单后,它重定向到主页tab.how,使其保留在同一页面中。我已经在相同的页面中写入了php动作,但是它不支持。表单提交后如何防止页面刷新,并使其保持在同一标签页

直到我提到,我们无法在文件上传中使用ajax,因此我们需要使用这个插件。 jquery form plugin但我不知道如何在我的表单中实现这个插件。

<form id="attach" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data"> 
<div> 
    <p> 
    <label for="tele">Upload Your Resume:</label><br> 
    <input id="tele" name="filename" type="file" /> 
    </p> 
</div> 
<input class="formbtn" type="submit" value="Send Message" /> 
</form> 

PHP

<?php 
if ($_SERVER['REQUEST_METHOD']=="POST"){ 

    // Set the "To" email address 
    $to="[email protected]"; 

    //Subject of the mail 
    $subject="Join Us E-mail with Resume attachment"; 

    // Get the sender's name and email address plug them a variable to be used later 
    $from = stripslashes($_POST['name'])."<".stripslashes($_POST['email']).">"; 

    // Check for empty fields 

    if($_FILES['filename']['tmp_name']==""){ 
      echo '<font style="font-family:Verdana, Arial; font-size:11px; color:#F3363F; font-weight:bold">Please upload your resume</font>'; 
     } 


    // Get all the values from input 
    $name = $_POST['name']; 
    $email_address = $_POST['email']; 
    $message = $_POST['message']; 

    // Check the email address 
    if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email_address)) 
    { 
     $errors .= "\n Error: Invalid email address"; 
    } 

    // Now Generate a random string to be used as the boundary marker 
    $mime_boundary="==Multipart_Boundary_x".md5(mt_rand())."x"; 

    // Now Store the file information to a variables for easier access 
    $tmp_name = $_FILES['filename']['tmp_name']; 
    $type = $_FILES['filename']['type']; 
    $file_name = $_FILES['filename']['name']; 
    $size = $_FILES['filename']['size']; 

    // Now here we setting up the message of the mail 
    $message = "\n\n Name: $name \n\n Email: $email_address \n\nMessage: \n\n $message \n\nHere is your file: $file_name"; 

    // Check if the upload succeded, the file will exist 
    if (file_exists($tmp_name)){ 

     // Check to make sure that it is an uploaded file and not a system file 
     if(is_uploaded_file($tmp_name)){ 

     // Now Open the file for a binary read 
     $file = fopen($tmp_name,'rb'); 

     // Now read the file content into a variable 
     $data = fread($file,filesize($tmp_name)); 

     // close the file 
     fclose($file); 

     // Now we need to encode it and split it into acceptable length lines 
     $data = chunk_split(base64_encode($data)); 
    } 

     // Now we'll build the message headers 
     $headers = "From: $from\r\n" . 
     "MIME-Version: 1.0\r\n" . 
     "Content-Type: multipart/mixed;\r\n" . 
     " boundary=\"{$mime_boundary}\""; 

     // Next, we'll build the message body note that we insert two dashes in front of the MIME boundary when we use it 
     $message = "This is a multi-part message in MIME format.\n\n" . 
     "--{$mime_boundary}\n" . 
     "Content-Type: text/plain; charset=\"iso-8859-1\"\n" . 
     "Content-Transfer-Encoding: 7bit\n\n" . 
     $message . "\n\n"; 

     // Now we'll insert a boundary to indicate we're starting the attachment we have to specify the content type, file name, and disposition as an attachment, then add the file content and set another boundary to indicate that the end of the file has been reached 
     $message .= "--{$mime_boundary}\n" . 
     "Content-Type: {$type};\n" . 
     " name=\"{$file_name}\"\n" . 
     //"Content-Disposition: attachment;\n" . 
     //" filename=\"{$fileatt_name}\"\n" . 
     "Content-Transfer-Encoding: base64\n\n" . 
     $data . "\n\n" . 
     "--{$mime_boundary}--\n"; 

     // Thats all.. Now we need to send this mail... :) 
     if (@mail($to, $subject, $message, $headers)) 
     { 
     ?> 
     <div><center><h1>Mail Sent successfully !!</h1></center></div> 
     <?php 
     }else 
     { 
     ?> 
     <div><center> 
      <h1>Error !! Unable to send Mail..</h1></center></div> 
     <?php 
     } 
    } 
} 
?> 
+0

使用'e.preventDefault() ;''''或'返回false;'为了防止表单提交 –

+0

我已经尝试过,但它不支持 –

+0

Post你试过了什么 –

回答

1

不要使用任何的行动路径,它会调用同一个页面(可根据上述当前凭证):

<form action="" method="post" enctype="multipart/form-data"> 
+0

我已经删除它,但仍然是重定向到主页选项卡 –

相关问题