저는 몇 개의 입력 필드와 버튼으로 작동하는 div가있는 연락처 양식이 있습니다.이 필드를 클릭하면 양식을 검증하는 함수가 호출되고 모든 것이 OK 일 경우 제출합니다. . 이 함수는 입력 데이터를 BusinessLogic.php
파일의 전송 함수를 호출하는 API.php
파일로 보냅니다. 양식이 제출되면 콜백 함수가 활성화되어야하며 확인 div가 애니메이션 처리되어야합니다. 입력의jQuery 콜백 함수가 실행되지 않았습니다.
html로 : 실제로
include_once 'BusinessLogic.php';
session_start();
$command = $_REQUEST["command"];
switch($command)
{
case "send_contact_form" :
send_contact_form($_REQUEST["name"], $_REQUEST["email"],
$_REQUEST["phone"], $_REQUEST["message"], $_REQUEST["form_language"]);
break;
}
과 BusinessLogic.php이는 API.php의 기능입니다
function submit_form(language)
{
var email_str = $("#email").val();
var errors = new Array();
$("#contact_inputs_block>div:not(:last-child)").css({'border-color' : '#a5957e', 'background-color' : '#f8f8f8'});
if ($("#name").val()=="")
{
errors.push(".div_input_name");
}
if(!validate_email(email_str))
{
errors.push(".div_input_email");
}
if ($("#phone").val()=="")
{
errors.push(".div_input_phone");
}
if (errors.length == 0)
{
$.getJSON("inc/API.php",
{
command : "send_contact_form",
name : $("#name").val(),
email : email_str,
phone : $("#phone").val(),
message : $("#message").val().replace(/\n/g, '<br>'),
form_language: language
} ,function(){
alert("sent");
$("#div_form_confirmation").animate({opacity:1}, 1000, function(){
setTimeout($("#div_form_confirmation").animate({opacity:0}, 3000, function(){location.reload()}),6000);
}); // end callback function
}); // end getJSON
} // end if
else
{
for (var i = 0; i <= errors.length; i++)
{
$(errors[i]).css({'border-color' : '#E60005', 'background-color' : '#ffc4c9'});
}
}
}
: 여기
<div id="contact_inputs_block">
<div class="div_contact_form_input_box div_input_name">
<input type="text" name="Name" placeholder="* Name" id="name">
</div>
<div class="div_contact_form_input_box div_input_phone">
<input type="tel" name="Phone" placeholder="* Phone" id="phone">
</div>
<div class="div_contact_form_input_box div_input_email">
<input type="email" name="Email" placeholder="* Email" id="email">
</div>
</div>
<div class="form_confirmation_wraper">
<div id="div_form_confirmation">
Message sent.
</div>
<div class="div_send_form">
</div>
</div>
내 함수의 메일을 보냅니다.
메일을 보내고 있지만 모든 것이 정상입니다. 문제는 submit_form() 함수의 콜백이 절대로 실행되지 않으며 메일이 전송되었다는 확인을 볼 수 없다는 것입니다.
왜 그런 일이 발생하며 어떻게 수정합니까? 감사!
양식의 html 코드를 제공해 주시겠습니까? – vooD
PHP가 JSON을 반환하지 않아 구문 분석 오류가 발생합니다. 대신 $ .get을 사용하거나 PHP가 json을 반환하도록 수정하십시오. –
@vooD 질문을 HTML로 업데이트했습니다. – Igal