2013-10-28 71 views
1

我在網上創建表單聯繫人,但是當我點擊「Enviar」(提交按鈕)時,表單郵件到達但它打開一個窗口來下載mail.php而不是顯示真實的表單結果。錯誤在哪裏? 您可以現場看到它在這裏:http://omgphotobooth.com.ar/jonetsugroup/contacto.php表單錯誤 - 在提交點擊打開窗口下載mail.php

這是形式的網頁代碼:

<!doctype html> 
<html> 
<head> 
<script type="text/javascript" src="formValidar/formValidar.js"></script> 
</head> 
<body> 
     <div class="formulario"> 
      <!--form--> 
      <form id="web" method="POST" action="mail.php"> 
      <div class="campos">  
       <div class="caja"> 
        <div class="flecha"></div> 
        <label class="tituloform" for="nombre">Nombre Completo 
        <span class="asterisk">*</span> 
        </label> 
        <input name="nombre" class="ss-q-short" id="formNombre" type="text"> 
       </div> 
       <div class="caja"> 
        <div class="flecha"></div> 
        <label class="tituloform" for="telefono">Teléfono 
        <span class="asterisk"></span> 
        </label> 
        <input name="telefono" class="ss-q-short" id="formTelefono" type="number"> 
       </div> 
       <div class="caja"> 
        <div class="flecha"></div> 
        <label class="tituloform" for="email">Mail 
        <span class="asterisk">*</span> 
        </label> 
        <input name="email" class="ss-q-short" id="formEmail" type="email"> 
       </div> 
       <div class="caja"> 
        <div class="flecha"></div> 
        <label class="tituloform" for="email">Fecha de Evento 
        <span class="asterisk"></span> 
        </label> 
        <input name="fecha" class="ss-q-short" id="formFecha" type="text"> 
       </div> 
       <div class="caja"> 
        <div class="flecha"></div> 
        <label class="tituloform" for="asunto">Asunto 
        </label> 
        <input name="asunto" class="ss-q-short" id="formAsunto" type="text"> 
       </div> 
       </div> 
       <div class="punteadolargo" id="contacto"></div> 
       <div class="raya" id="contacto"></div> 
       <img src="img/mensaje.jpg" class="mensajecinta"> 
       <div class="mensaje"> 
       <div class="caja"> 
        <label class="tituloform" for="mensaje"> 
        </label> 
        <textarea name="mensaje" class="ss-q-short" id="formMensaje" form="web"></textarea> 
       </div> 
       </div> 
      <div id="webFormResult"></div> 
      <div> 
       <p style="text-align:center"> 
       <input type="submit" value="" class="submit" name"submit"/> 
       </p> 
      </div> 
     </form> 
      <script type="text/javascript" src="global.js"></script> 

     <!--form--> 
     </div> 
</body> 
</html> 

這是使它工作的mail.php:

<?php 

$header = 'From: [email protected]' . "\r\n" . 
'Reply-To: '.$_POST["email"]. "\r\n" . 
'X-Mailer: PHP/' . phpversion(); 

$msg = ''; 

foreach($_POST as $k => $v) { 
    $msg .= "$k: $v \n"; 
} 

$res = @mail('[email protected]', 'Contacto desde web', $msg, $header); 

header('Content-type: text/json'); 


$res = true; 

echo json_encode(array('result' => $res)); 

?> 

這是de js的形式。在mail.php

$(document).ready(function(){ 

    $('form#web').submit(function(){ 

     var definitions = [ 
     { 
      id: 'formNombre', 
      type: 'string', 
      title: 'nombre' 
     }, 

     { 
      id: 'formEmail', 
      type: 'email', 
      title: 'email' 
     }, 

     { 
      id: 'formAsunto', 
      type: 'string', 
      title: 'asunto' 
     }, 
     { 
      id: 'formMensaje', 
      type: 'string', 
      title: 'mensaje' 
     }  
     ]; 

     if(formValidar($(this), definitions)) { 

      console.log($(this)); 

      $.post('mail.php', $(this).serialize(), function(json){ 

       if(json.result == true) { 
        $('#webFormResult').html('El mensaje se ha enviado correctamente!'); 
       } else { 
        $('#webFormResult').html('No pudimos enviar el mensaje, intente nuevamente'); 
       } 
       $("#web input[type=text],#web input[type=email], #web input[type=number], #web textarea, #web select").val(''); 

      }); 

      return false; 

     } else { 
      return false; 
     } 

    }); 
}); 

回答

0

那麼,

我看到的一個問題是,在可見的代碼中,您沒有在代碼中包含jQuery庫。嘗試將其添加到您的代碼中,並查看它是如何工作的。

此外,您可能想要刪除@符號作爲埃米爾在他的帖子中指出。

+0

噢,是的,你說得對,那是問題所在,我可能會錯誤地將它清除。謝謝!有時可以有更多的觀點來發現問題! – lalalamai

1

刪除@

$res = @mail('[email protected]', 'Contacto desde web', $msg, $header); 

/

$res = mail('[email protected]', 'Contacto desde web', $msg, $header); 

還要檢查你的php.ini,並確保SMTP是工作的罰款和所需端口(25)打開

+0

非常感謝! – lalalamai

1

因爲你提到的conent-type設置標題是text/json也許你的瀏覽器被配置爲下載json而不是打開它。 您可能需要一個插件,如JSONVIEW才能在您的瀏覽器中看到它