【发布时间】:2018-10-22 07:45:38
【问题描述】:
这是将数据插入数据库的代码。并将结果发送回 ajax 代码。
<?php
if (isset($_FILES['files']['name'])) {
$files = $_FILES['files']['name'];
$desc = $_POST['description'];
$subject = $_POST['subject'];
$path = 'Lectures/' . $files;
move_uploaded_file($_FILES["files"]["tmp_name"], $path);
$date = date('d-M-y');
$query = "INSERT INTO content(file_name,course_code,description,file_path,upload_date) VALUES ('$files','$subject','$desc','$path','$date')";
$cm = sqlsrv_query($conn, $query);
if ($cm) {
$result['status'] = "Succsess";
} else {
$result['status'] = "failed";
}
echo json_encode($result);
}
这是Ajax Success: function。即使条件为真,它也只执行else 部分。
success: function(output) {
alert(output);
if(output.status == "Succsess")
{
alertify.success('Success message');
}else{
alertify.set('notifier','delay', 2);
alertify.set('notifier','position', 'top-right');
alertify.error('Error message');
}
readRecords();
$('#form1').trigger("reset");
}
【问题讨论】:
-
output.status == "Succsess"只是一个想法,正确的拼写可以帮助减少错误并使代码更易于理解。您是否检查过output在success处理程序中包含的内容? -
在控制台检查请求。从逻辑上不难看出
output.status不等于Succsess。您需要准确确定该值是什么。 -
您也对 SQL 注入持开放态度 - 应该尽快解决
-
你的
ajax代码中有dataType :json吗?如果没有,那么您必须先解析即将到来的响应,然后才能进行比较 -
@freedomn-m — 这并不神奇,它基于内容类型响应标头,而我们展示的代码中并未设置该标头。 (它可能设置在别处)。