2017-02-23 57 views
-4

我知道,这是一个经常被问到的问题,但我真的找不到问题。 我在主页上有3个联系表单。他们都有相同的脚本。其中两个工作完美,但这只是没有做任何事情。我真的不知道为什么。PHP表单不会做任何事情

的标记:

<form action="contact.php" id="contactformmain" method="post" name="send" enctype="multipart/form-data"> 

     <div class="formular hidden animated"> 
       <div class="form-wrapper col-md-12 col-lg-12 col-xs-12"> 
       <h2 class="section-title-dark section-dosis header-distance min-distance-form-header"><span style="color:#ce5055;">Schicken Sie uns eine Nachricht:</span></h2> 

       <i class="fa fa-3x fa-close close-form"></i> 

       <span class="input-kontakt"> 
       <input class="input__field input__field--flat-form" type="text" id="k_name" name="k_name" required="required"/> 
       <label class="input-label__me" for="k_name" required><span class="input__label-content input__label-content--haruki">NAME, Vorname</span></label> 
       </span> 

       <span class="input-kontakt"> 
       <input class="input__field input__field--flat-form" type="text" id="k_firma" name="k_firma" required="required"/> 
       <label class="input-label__me" for="k_firma" required><span class="input__label-content input__label-content--haruki">FIRMA</span></label> 
       </span> 

       <span class="input-kontakt"> 
       <input class="input__field input__field--flat-form" type="tel" id="k_telefon" name="k_telefon" required="required"/> 
       <label class="input-label__me" for="k_telefon" required><span class="input__label-content input__label-content--haruki">TELEFON</span></label> 
       </span> 

       <span class="input-kontakt"> 
       <input class="input__field input__field--flat-form email" type="text" id="k_email" name="k_email" required="required"/> 
       <label class="input-label__me" for="k_email" required><span class="input__label-content input__label-content--haruki">E-MAIL</span></label> 
       </span> 

       <textarea class="requiredField message" id="k_message" name="k_message" placeholder="Message"></textarea> 



       <button id="submit_kontakt" class="kontakt-abschicken kontakt-button" type="submit" name="submit" >Absenden</button> 
       <div class="sending-message small-centered column"> 
       <div id="message_post"></div> 

       </div> 

       </div> 
     </div> 

     </form> 

PHP标记:

<?php 
$adminemail = "[email protected]"; 

if ($_GET['send'] == 'comments') 
{ 
$_ufirma = $_POST['k_firma'];     
$_uname = $_POST['k_name']; 
$_uemail = $_POST['k_email']; 
$_number = $_POST['k_telefon']; 
$_comments = stripslashes($_POST['k_message']); 




$email_check = ''; 
$return_arr = array(); 

if($_uname=="" || $_uemail=="" || $_number=="") 
{ 
    $return_arr["frm_check"] = 'Fehler'; 
    $return_arr["msg"] = "Bitte füllen Sie alle essentiellen Felder aus."; 
} 
else if(filter_var($_uemail, FILTER_VALIDATE_EMAIL)) 
{ 

$to = $adminemail; 
$from = $_uemail; 
$subject = "EXPOSÉDESIGN BUDGETPLANER"; 

$message =  '<h2 style="background-color: ACD086; padding:10px;">Eine neue Exposeanfrage:</h2>' . 
      'Name: &nbsp;&nbsp;' . $_uname . 
      '<br><br> Emailadresse:' . $_uemail . 
      '<br><br> Telefonnummer: &nbsp;&nbsp;' . $_number . 
      '<br><br> Firma:&nbsp;&nbsp;' . $_ufirma . 
      '<br><br> Nachricht:&nbsp;&nbsp;' . $_comments . 
      '<h2 style="background-color: ACD086; padding:10px;">Anfragedaten:</h2>' . 
      '<br><br> Gesamtanzahl der Wohneinheiten: &nbsp;&nbsp;' . $q1a . 
      '<br><br> Gesamtanzahl der Haustypen: &nbsp;&nbsp;' . $q2a . 
      '<br><br> Standort des Projekts: &nbsp;&nbsp;' . $q4a. 
      '<br><br> Quadratmeterpreis: &nbsp;&nbsp;' . $q5a. 
      '<br><br> Zielgruppen: &nbsp;&nbsp;' . implode(',', $checkbox) . 
      '<br><br> Gesamtwohnfläche: &nbsp;&nbsp;' . $q6a; 

$headers = "MIME-Version: 1.0\r\n"; 
$headers .= "Content-type: text/html; charset=utf-8\r\n"; 
$headers .= "Content-Transfer-Encoding: 7bit\r\n"; 
$headers .= "Nachricht von: " . $from . "\r\n"; 


} else { 


$return_arr["frm_check"] = 'error'; 
$return_arr["msg"] = "Bitte geben Sie eine gültige Email-Adresse ein."; 


} 

echo json_encode($return_arr); 
} 

?> 

jQuery的标记:

$("#contactformmain").submit(function() { 
    $("#submit-kontakt").value = 'Bitte warten...'; 

    $.post("contact.php?send=comments", $("#contactformmain").serialize(), 
      function (data) { 
      if (data.frm_check === 'error') { 

       $("#k_message").html("<div class='errorMessage'>ERROR: " + data.msg + "</div>"); 
      } else { 
       $(".formular").removeClass("fadeInLeftBig").addClass("fadeOutLeftBig"); 
       $("#contactformmain")[0].reset(); 
      } 
     }, "json"); 
    return false; 
    }); 

我刚接手的工作形式,复制/粘贴,并改变了ID和类。 我在形式和php方面都不太好,所以可能是,并非一切都是正确的。但至少,其他人正在工作...

这意味着,我正在一个服务器上,其中php脚本正在他们应该工作。它必须是代码的问题。

当我点击提交按钮,没有真的发生......

+0

你不这样做,在那里没有错误 – apokryfos

+1

检查您的控制台,并查看是否有来自错误报告的情况下'data'什么。 var_dump并查看您的html源代码。 –

+0

难道第一个'if'已经失败了吗?这个'if($ _GET ['send'] =='comments')'可能在那里看看这个表单是否真的被提交了,我认为它应该与你的提交按钮的'name'属性相对应,否则它不会。也许你在HTML标记中重命名了某些内容,并且没有相应地在PHP脚本中更改它? – domsson

回答

1

首先,$("#submit-kontakt").value = 'Bitte warten...';不会因为你使用的是按钮的工作,另外,jQuery的语法更改的值输入是.val(...)而不是.value

尝试增加一个警告,看看形式之前$.post(...);

而且正确提交,如apokryfos在评论说,你不是在与数据的PHP脚本做任何事情,你只是设置邮件变量但不发送任何邮件。无论是在PHP脚本还是jQuery之一。

我会添加警报以开始调试,并查看您是否收到来自脚本的任何响应以及它们的工作方式。或者尝试使用Chrome/Edge/Firefox中的编程工具来跟踪网络请求。

+0

虽然我会重写脚本,但我试图在$ .post(...)之前添加警报。 明天我将不得不看看这混乱。但是,谢谢你的帮助,直到这里... – Buntstiftmuffin

0

尝试使用下面的代码。我不确定这是否适用于您,但我想您的数据并未通过发布请求发送。

$.post("contact.php?send=comments", {data:$("#contactformmain").serialize()},function (data) { 
 
    if (data.frm_check === 'error') { 
 
     $("#k_message").html("<div class='errorMessage'>ERROR: " + data.msg + "</div>"); 
 
    } else { $(".formular").removeClass("fadeInLeftBig").addClass("fadeOutLeftBig"); 
 
     $("#contactformmain")[0].reset(); 
 
    } 
 
}, "json");