Javascript如果Else跳过结束

时间:2018-02-25 20:22:25

标签: javascript

我需要额外的一双眼睛来看看以下内容: 我有两个文件: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中它正确捕获了错误的文件格式或没有文件提交操作。然后,如果我以正确的格式提交文件,它会上传数据并正确显示成功消息。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您是否尝试过在成功功能开始时使用console.log(数据)?如果数据确实是一个字符串并且值是正确的,则没有理由触发else语句