2017-02-23 108 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");