如何从HTML/JS调用Ajax启动PHP函数?

How to Call Ajax from HTML/JS to start PHP Function?

我正在编写一个代码,该代码将在提交表单时显示警报,然后重定向回主页。如果提交了一个空表单,我想显示一个错误警报。我意识到我不能从 onclick 调用 PHP,我需要调用一个 JS 函数来启动我的 PHP 函数。谁能告诉我我的 PHP 代码是否在正确的轨道上,以及如何初始化 AJAX 函数?尝试在没有 JQuery 的情况下执行此操作。谢谢!

html

<form method="POST" action="contact.php">

<label for='message'>Leave a Message:</label> <br><br>
   <textarea rows="15" cols="45" name="message" id="message" ></textarea> 
<br><br>
  <input type="submit" name='submit' value="send!" onclick="startajax()"/>

</form>

和php

<?PHP


$subject="New Message!";
$message=$_POST ["message"];

function leavemessage () {

if(!empty($_POST['message'])) {

echo '<script type="text/javascript">
function error(){
alert("Error!");
window.location.replace=(contact.html);}
</script>';

}

else 

{


{mail ($email, $subject, $message, "From:".$from);}

echo '<script type="text/javascript">
function confirmation(){
alert("Message Sent!");
window.location.replace (index.html);}
</script>';

}

}


?>

您可以使用 jquery ajax 来完成您的请求,如下所示:

HTML:

<form method="POST" id="contact-form" onsubmit="return startajax()" >

<label for='message'>Leave a Message:</label> <br><br>
   <textarea rows="15" cols="45" name="message" id="message" ></textarea> 
<br><br>
  <input type="submit" name='submit' value="send!"/>

</form>

PHP:

<?PHP


$subject="New Message!";
$message=$_POST ["message"];
if(!empty($message)) {
   //your email code here
   exit(json_encode(array('error' => 0, 'errorMessage' => '')));
} else {
   exit(json_encode(array('error' => 1, 'errorMessage' => 'Message is required')));

}


}


?>

Jquery:

<script>
    var startajax = function(){
        var url = 'contact.php';
        $.ajax({
            url : url,
            type : "POST",
            dataType : "JSON",
            data : $('#contact-form').serialize(),
            success : function(response) {
                if (response.error == 0) { // success
                    $('#contact-form')[0].reset();
                    alert('SUCCESS MESSAGE');
                } else { // error
                    alert(response.errorMessage);//form is invalid
                }
            }
        })
        return false;
    }


</script>

只需确保您的页面包含 jquery 库。

根据要求,没有下面的jQuery代码:

HTML:

<form method="POST" id="contact-form" action="contact.php" >

<label for='message'>Leave a Message:</label> <br><br>
   <textarea rows="15" cols="45" name="message" id="message" ></textarea> 
   <?php if (isset($_GET['error'])) { ?>
    <p style="color:red;">Message is required</p>
   <?php } ?>
<br><br>
  <input type="submit" name='submit' value="send!"/>

</form>

PHP:

<?PHP

    if (isset($_POST) && !empty($_POST)) {
        $subject="New Message!";
        $message=$_POST ["message"];
        if(!empty($message)) {
           //your email code here
           echo '<script>window.location.href="index.html"</script>';
        } else {

           echo '<script>window.location.href="index.html?error=1"</script>';
        }


        }
    }


    ?>