2017-02-19 5 views
0

이 내 코드입니다 ail.php필수 속성과 제출 양식 버튼

<?php 

$name = $_POST['Name']; 
$mail = $_POST['Mail']; 
$object = $_POST['Object']; 
$message = $_POST['Message']; 

mail("[email protected]", $object, $message, 
    "From: $mail\r\n" . 
    "Reply-To: $mail\r\n" . 
    "X-Mailer: PHP/" . phpversion()); 

?> 

모든 필드가 null이면이 코드로 메일을 보낼 수 있습니다. 모든 필드가 필수 속성을 준수하면 메일을 보내도록 컨트롤을 추가합니다. 정말 고마워요! Bye

+0

가능한 복제 (http://stackoverflow.com jQuery 코드에 대한/questions/31876238/required-fields-are-not-working-with-ajax) –

답변

0

제출 단추를 클릭하면 jquery에서 양식과 관련된 제출 이벤트를 사용하도록 아약스 호출이 이루어지기 때문에 이러한 상황이 발생합니다. 다음 코드를 사용하여 원하는대로 할 수 있습니다.

먼저 아래와 같이 폼에 ID를 추가

이제
<form action="" id="formId"> 
    <input placeholder="Name" name="Name" class="form" id="name" type="text" required/> 
    <input placeholder="Mail" name="Mail" class="form" id="mail" type="email" required /> 
    <input placeholder="Object" name="Object" class="form" id="oggetto" type="text" required /> 
    <textarea placeholder="Message" name="Message" id="text" class="form"></textarea> 
    <input class="formBtn" name="submit" type="submit" id="submit"/> 
    <input class="formBtn" name="reset" type="reset" /> 
</form> 

$(document).on('submit','#formId',function(e){ 
    // this will prevent form to submit 
    e.preventDefault(); 
    // data need to send can be get with javascript serialize() 
    var data = $("#formId").serialize(); 
    // now go for ajax call 
    $.ajax({ 
     type: "POST", 
     url: 'php/mail.php', 
     data: data, 
     success: function() { 
     alert("Mail inviata correttamente!"); 
     } 

    }); 
}) 
[필수 필드가 아약스와 함께 작동하지 않습니다]의
+0

그것이 작동하는지 여부를 알려주세요 ... 작동하면 정답으로 승인하십시오 –

+0

죄송 합니다만이 코드는 작동하지 않습니다. 나는 메일을 보내지 않는다 ... Tnk – antoniodna87

+0

죄송합니다. 함수 이름에 맞춤법 오류가 있습니다. serialize()에서 다시 시도하십시오. –