php - Ajax 表单 : Wrong value sent back

标签 php javascript jquery ajax forms

我试图弄清楚为什么当 JavaScript 被激活时,这个表单总是返回“Error”,但当 JavaScript 被停用时,它的工作方式却像它应该的那样。
它与echo“success”echo“error”有关,但我真的找不到问题所在。我尝试回显 12truefalse - 它永远不起作用。为什么?

我的 jQuery 代码:

$("form").submit(function () {

        var name     = $( "input[name=name]" ),
            mail     = $( "input[name=email]" ),
            message  = $( "textarea[name=message]" );

        var data = "name=" + name.val() + "&mail=" + mail.val() + "&message="  + encodeURIComponent(message.val());

        $.ajax({
            url: "my_form.php",
            type: "POST",
            data: data,
                success: function ( data ) {
                    if ( data == "success" ) {
                        alert( "Everyhting is good." );
                    } else {
                        alert( "Error" );
                    }
                }
        });

        return false;
})

以及 PHP 部分:

$name    = $_POST["name"];
$email   = $_POST["email"];
$message = $_POST["message"];

function checkEmail( $e ) {

    $isValid = true;

    if ( strlen( $e ) === 0 ) {
        $isValid = false;
    }

    if ( !preg_match( "/^((?:(?:(?:\w[\.\-\+]?)*)\w)+)\@((?:(?:(?:\w[\.\-\+]?){0,62})\w)+)\.(\w{2,6})$/", $e ) ) {
        $isValid = false;
    }

    if ( $isValid == true ) {
        echo "success";
    } else {
        echo "error";
    }
}

checkEmail( $email );

最佳答案

您正在数据字符串中调用电子邮件mail,并期望在 php 中使用$_POST['email']

var data = "name=" + name.val() + "&mail=" + mail.val() + "&message="  + encodeURIComponent(message.val());

将上面一行中的mail更改为如下电子邮件。

var data = "name=" + name.val() + "&email=" + mail.val() + "&message="  + encodeURIComponent(message.val());

关于php - Ajax 表单 : Wrong value sent back,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14899362/

相关文章:

javascript - 如何读取从 php 传递到 ajax jQuery 的多维关联数组?

PHP CLI、Windows 7 CMD 和 CLS/FF 需要和谐相处。 (从 CLI 使用 PHP 清除 Win7 CMD)

javascript - 从带有皮肤的 3ds MAX 导入后,我的游戏内网格体统一反转

javascript - 如何对 Google Charts 数据表进行排序并将排序扩展到其他列?

javascript - 如何使用 cookie 来防止弹出 colorbox?

php - 使用 jQuery 和 AJAX 显示/隐藏 div 无法正常工作

javascript - 如何一般性地解决在 JavaScript 中生成增量整数 ID 的问题

javascript - .animate() 不工作?

javascript - 在php中通过jquery AJAX填充数组

php - 如何从 MySQL 中获取 PHP 对象