首页 > 解决方案 > PHP没有从表单提交回显数据

问题描述

我的页面有一个 html 表单来收集电子邮件、名字、姓氏和一个复选框。表单以此标题开头:

<form action="echo_test.php" method="post" name='register' id='register'>

我使用此按钮提交表单:

<div class="EMail_Pwd_JoinPage"><button class="btn_joinnow" style="color:rgb(255,255,255);" id="btn_submit" onclick="GetDate(); GetCkBx();">Submit data</button></div>

这调用了这个 jquery 函数:

<script type="text/javascript">
$("#btn_submit").on("click", function (event) {
    event.preventDefault();
    form_data = $('form').serialize()
    console.log("Okay, I'm starting");
    console.log(form_data);
    console.log("More Info");
    GetDate();
    return $.ajax({
        type: "POST",
        url: "echo_test.php",
        data: form_data,
        success: function (responseText) {
            console.log("Server Reply " + responseText);
        },
        error: function (error) {
            console.log("Okay, I failed" + error);
        }
    });
});
</script>

它提交给我服务器上的 echo_test.php:

<?php
echo 'Hello ' . htmlspecialchars($_POST["firstname"]) . '!';
?>

在上面的 onclick 事件提交代码中,它应该从服务器回复:

    success: function (responseText) {
        console.log("Server Reply " + responseText);
    },

但是 Chrome 开发控制台没有显示任何回复。上面的其他 console.log 消息确实显示正确(包括序列化的表单数据)。

我在五月份问了一个类似的问题,但这里的情况有所不同。

为什么这段代码没有从服务器回显?

标签: phpjquery

解决方案


在 echo_test.phpreturn中的 echo 语句或使用die().

<?php
echo 'Hello ' . htmlspecialchars($_POST["firstname"]) . '!';
return;
?>

推荐阅读