weixin_33725239 2015-06-06 15:13 采纳率: 0%
浏览 26

Ajax完成功能为空

I'm having problem with this ajax function, fires always "fail" but everything is inserted into my database

$(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);
            });
        });
    });

From "fail" i receive this

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"}

That line is

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

And my json_encode is

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

So whats wrong? Thanks

UPDATE

This is my 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条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥20 python忆阻器数字识别
    • ¥15 无法输出helloworld
    • ¥15 高通uboot 打印ubi init err 22
    • ¥20 PDF元数据中的XMP媒体管理属性
    • ¥15 R语言中lasso回归报错
    • ¥15 网站突然不能访问了,上午还好好的
    • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
    • ¥15 semrush,SEO,内嵌网站,api
    • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
    • ¥15 振荡电路,ADS仿真