Ajax完成函数为空

时间:2015-06-06 15:13:11

标签: javascript php jquery ajax

我对这个ajax功能有问题,总是会发生故障"失败"但是一切都插入了我的数据库

$(document).ready(function () {
        $("#formacao").submit(function (e) {
            e.preventDefault();
            var formData = new FormData($(this)[0]);
            var ajaxDivAlert = $('#ajaxDivAlert');
            var ajaxDivOk = $('#ajaxDivOk');
            var ajaxDivErro = $('#ajaxDivErro');

            $.ajax({
                url: 'nova_formacaoBD.php',
                type: 'POST',
                data: formData,
                cache: false,
                contentType: false,
                processData: false,
                beforeSend: function () {
                    ajaxDivAlert.empty().html('A carregar o ficheiro...aguarde por favor');
                }
            }).done(function (data) {
                var result = data.status;
                console.log(result);
                if (result === 'success'){
                    ajaxDivOk.empty().fadeIn().html('Informação: ' + data.message).fadeOut(5000);
                }
            }).fail(function (xhr, status, error) {    
                console.log("Status: " + status + " Error: " + error);
                console.log(xhr);
                ajaxDivErro.empty().fadeIn().html('Esta formação já está registada na base de dados').fadeOut(5000);
            });
        });
    });

来自"失败"我收到了这个

Status: parsererror Error: SyntaxError: Unexpected token F
superNewFormacao.php:244 Object {readyState: 4, responseText:       "Formação{"status":"success","message":"Nova forma\u00e7\u00e3o gravada"}",    status: 200, statusText: "OK"}

该行是

  console.log("Status: " + status + " Error: " + error);

我的json_encode是

echo json_encode(array('status' => 'success', 'message' => 'Nova formação gravada'));

所以什么错了? 感谢

更新

这是我的php for insert

    header('Content-Type: application/json');
error_reporting(E_ALL | E_NOTICE);
ini_set('display_errors', '1');

$mysqli = new mysqli('localhost', 'xxxxx', 'xxxxxx');
if (mysqli_connect_errno()) {
    trigger_error('Database connection failed: ' . mysqli_connect_error(), E_USER_ERROR);
}
mysqli_set_charset($mysqli, "utf8");
$uploaddir = $_SERVER['DOCUMENT_ROOT'] . '/uploads';
$uploadfile = $uploaddir . '/' . basename($_FILES['fileToUpload']['name']);
$escola = filter_input(INPUT_POST, 'escola');
$form = filter_input(INPUT_POST, 'form');
$data = filter_input(INPUT_POST, 'data');
$horas = filter_input(INPUT_POST, 'horas');
$local = filter_input(INPUT_POST, 'local');
$dest = filter_input(INPUT_POST, 'dest');
$datas = filter_input(INPUT_POST, 'datas');
$visto = 0;
echo $form;

if (move_uploaded_file($_FILES['fileToUpload']['tmp_name'], $uploadfile)) {

    $target_path = "/uploads/" . basename($_FILES['fileToUpload']['name']);
    $sql = "INSERT INTO `ebspma_paad_ebspma`.`formacoes`(idescola, nome, inicio, horas, local, destinatarios, dataLimite, visto, path) VALUES(?, ?, ?, ?, ? ,?, ?, ?, ? )";
    $stmt = $mysqli->prepare($sql);
    if ($stmt === false) {
        trigger_error('Wrong SQL: ' . $sql . ' Error: ' . $mysqli->error, E_USER_ERROR);
    }
    $stmt->bind_param('issssssis', $escola, $form, $data, $horas, $local, $dest, $datas, $visto, $target_path);
    if (!$stmt->execute()) {
        echo json_encode(array('status' => 'error', 'message' => 'Opppss...A formação não foi gravada'));
    }
} else {
    echo json_encode(array('status' => 'error', 'message' => 'Opppss...A formação não foi gravada'));
}
$stmt->close();
echo json_encode(array('status' => 'success', 'message' => 'Nova formação gravada'));

0 个答案:

没有答案