У меня есть контактная форма на моей странице указателя, которая должна содержать электронную почту и сообщение посетителя, которые будут сохранены в таблице mysql после нажатия кнопки отправки, я создал функцию нажатия кнопки jquery, которая имеет вызов ajax и ajaxзапрос идет на страницу под названием контакт Я не знаю, почему это не работает, я пропустил!сейчас Это структура моего проекта:
index.php
connect.php (Database Connection)
js (folder) => ajax.js (The jquery file inside the "js" folder)
ajax (folder) => contact.php (The php file inside the ajax folder)
Мой html:
<div id="index-contact-form">
<form>
<div>
<input type="email" id="con-email" required>
<label>Email</label>
</div>
<div>
<textarea id="con-msg" required></textarea>
<label>Message</label>
</div>
<div>
<button id="con-send-btn" class="btn index-contact-form-btn">Send</button>
<p id="con-error"></p>
</div>
</form>
</div>
Это мой код файла ajax.js:
$(document).ready(function(){
$("#con-send-btn").click(function(e){
e.prvenetDefault();
// Get Vister Entered Data
var contactEmail = $("#con-email").val().trim();
var contactMsg = $("#con-msg").val().trim();
// Call AJAX Method And Specify Its Parameters
$.ajax({
url: "../ajax/contact.php",
type: "POST",
data: {email:contactEmail,message:contactMsg},
dataType:"json",
success: function(data){
$("#index-contact-form").empty();
$("#index-contact-form").append(data.success);
},
error: function(data){
$("#con-error").text(data.fail);
}
});
});
});
Это мой контакт.php код файла:
<?php
ini_set( 'error_reporting', E_ALL );
ini_set( 'display_errors', true );
include("../connect.php");
if(isset($_POST['email']) && isset($_POST['message']))
{
// Get Data From POST Request
$email = $_POST['email'];
$message = $_POST['message'];
// Declare Variables For Maintain The Results
$success = '';
$fail = '';
// Validate The Form
$formErrors=array(); // Empty Array Defined For Containing Error Messages Of Empty Inputs
if(isset($email))
{
$filteredEmail = filter_var($email,FILTER_SANITIZE_EMAIL);
if(filter_var($filteredEmail , FILTER_SANITIZE_EMAIL) != true)
{
$formErrors[]='Email not valid';
}
if(strlen($filteredEmail) > 100)
{
$formErrors[]='Email should be less than 100 characters';
}
if(empty($filteredEmail))
{
$formErrors[]='You should provide email';
}
}
if(isset($message))
{
$filteredMessage = filter_var($message,FILTER_SANITIZE_STRING);
if(strlen($filteredMessage) < 10)
{
$formErrors[]='Message can't be less than 10 characters';
}
if(strlen($filteredMessage) > 255)
{
$formErrors[]='Message must be less than 255 characters';
}
if(empty($filteredMessage))
{
$formErrors[]='Message must not be empty';
}
}
// If There Is No Error Procced The Insert Operation
if(empty($formErrors))
{
// Insert User Info In Database
$stmt = $con->prepare("insert into contact (ID , email , message) values (DEFAULT , :cemail , :cmessage)");
$stmt-> execute(array(
'cemail' => $email,
'cmessage' => $message
));
$success .= "Message has been sent";
}
else
{
foreach($formErrors as $error)
{
$fail .= $error;
}
}
$data = array('success' => $success,'fail' => $fail);
echo json_encode($data);
}
?>