JQuery验证提交处理程序没有触发.done

时间:2015-07-29 14:20:44

标签: jquery json

我有一个使用JQuery Validate的表单。我的submitHandler看起来像下面的

submitHandler: function(){
    $.ajax({
        type: "POST",
        url: "backend/process.php",
        data: {
            'clientName': $("#clientName").val()
        },
        dataType: "json"
    }).done(function (response) {
        alert("DONE");
        alert(response);
        if(response == 'success') {
            alert("YES");
        }
    });
    return false;
}

因此,此数据将发送到process.php。该文件执行以下操作

<?php

include 'classes/ClientHandler.php';

$c_name = $_POST['clientName'];


$clientHandler = new ClientHandler();
$response = $clientHandler->insertClient($c_name);
var_dump($response);

if($response == "success"){
    return "success";
}

在我的ClientHandler类中,我将数据插入数据库并在成功时返回。

public function insertClient($c_name) {
    try {
        /* Database code */
        return "success";
    }
    catch (PDOException $e) {
        trigger_error("Failed to create client: " . $e->getMessage(), E_USER_ERROR);
    }
}

我没有显示我的所有代码,所以它不是很多,但上面应该展示我的过程。我的数据已成功添加到我的数据库中。

我刚刚给处理程序添加了一个失败,这会触发我设置失败的警报。它声明

  

状态:parsererror错误:SyntaxError:JSON.parse:意外   JSON数据第1行第1行的字符

我的代码中是否有可能导致此错误的内容?

由于

1 个答案:

答案 0 :(得分:1)

process.php 中,替换您的:

  

return "success";

通过

  

echo json_encode("success");

您必须编写数据,以便使用 echo

如果您使用 return 语句,则会在服务器级别返回一些数据。