我需要额外的一双眼睛来看看以下内容: 我有两个文件:index.php和test_import.php
在index.php上,我有一个表单供用户选择上传CSV文件。当用户提交表单时,我使用ajax将文件发送到test_import.php
test_import.php文件中的脚本将检测用户是否提交了文件以及是否为CSV格式。如果用户提交了CSV格式的文件,它将继续将数据上传到数据库中,完成后,它会将成功消息发送回index.php。如果用户没有提交文件或发送了错误的格式文件,则代码会捕获该文件,跳过数据插入,并将错误消息发送回index.php
以上效果很好。我遇到的问题是在index.php中,它从test_import.php文件中捕获响应
data ==“Error1” - 文件格式错误
data ==“Error2” - 没有提交文件
data ==“Success” - 加载数据
这是index.php中的代码,用于捕获test_import.php的响应
<script>
$(document).ready(function(){
$('#upload_csv').on("submit", function(e){
e.preventDefault(); //form will not submitted
var err1 = document.getElementById("wrongfile_table");
var err2 = document.getElementById("nofile_table");
var x = document.getElementById("pleasewait");
var y = document.getElementById("employee_table");
//Show pleasewait image if blocked
if (x.style.display === "none") {
x.style.display = "block";
} else {
x.style.display = "none";
}
//Show success div if blocked
if (y.style.display === "block") {
y.style.display = "none";
}
$.ajax({
url:"test_import.php",
method:"POST",
data:new FormData(this),
contentType:false, // The content type used when sending data to the server.
cache:false, // To unable request pages to be cached
processData:false, // To send DOMDocument or non processed data file it is set to false
success: function(data){
if(data == "Error1")
{
if (x.style.display === "block") {
x.style.display = "none";
} else {
x.style.display = "block";
}
//Show wrongfile div if blocked
if (err1.style.display === "none") {
err1.style.display = "block";
} else {
err1.style.display = "none";
}
console.log(data);
return;
}
else if(data == "Error2")
{
if (x.style.display === "none") {
x.style.display = "block";
} else {
x.style.display = "none";
}
//Show nowfile div if blocked
if (err2.style.display === "none") {
err2.style.display = "block";
}
console.log(data);
return;
}
else
{
if (x.style.display === "none") {
x.style.display = "block";
} else {
x.style.display = "none";
}
//Show success div if blocked
if (y.style.display === "none") {
y.style.display = "block";
} else {
y.style.display = "none";
}
console.log(data);
}
}
})
});
});
我遇到的问题是,如果我得到响应“Error1”或“Error2”,它将跳转到“Success”“Else”语句以显示消息“数据已加载”。实际上没有加载数据,因为在文件test_import.php中它正确捕获了错误的文件格式或没有文件提交操作。然后,如果我以正确的格式提交文件,它会上传数据并正确显示成功消息。
提前感谢您的帮助。
答案 0 :(得分:0)
您是否尝试过在成功功能开始时使用console.log(数据)?如果数据确实是一个字符串并且值是正确的,则没有理由触发else语句