2016-12-26 12 views
0

私はファイルをアップロードするためにスクリプトにajax呼び出しを行いますが、ファイルがすでに存在するかのような特定のチェックのフィードバックを表示したいと思います。PHPがajax呼び出しでスクリプトの応答を表示

私のスクリプトの応答を表示することができません。なぜレスポンスが表示されないのですか?

$(document).ready(function() 
{ 
    $("#upload").submit(function(e) 
    { 
     e.preventDefault(); 

     $.ajax(
     { 
      url: "upload.php", 
      type: "POST", 
      data: new FormData(this), 
      contentType: false, 
      cache: false, 
      processData:false, 
      success: function(data) 
      { 
       //i want response here true or false 
       location.reload(true); 
      } 
     }); 
    }); 
}); 

upload.phpスクリプト:ここ

は私のAJAX呼び出しで最初に

<?php 

$dir = 'files'; 

echo upload(); 

/** 
* Upload a file 
* 
* @return bool 
*/ 
function upload() 
{ 
    // Storing source path of the file in a variable 
    $sourcePath = $_FILES['file']['tmp_name']; 

    // Target path where file is to be stored 
    $targetPath = "files/".$_FILES['file']['name']; 

    // Check if file already exists 
    if (file_exists($_FILES['file']['name'])) { 
     return false; 
    } 

    // Moving Uploaded file 
    move_uploaded_file($sourcePath,$targetPath) ; 

    return true; 
} 

答えて

2

、PHPのリターンは内部のもののために作られています。

<?php 
echo "true"; 
?> 

とJSでそれをチェックする場合は、単純なものが必要です:あなたは戻ってJSに値を取得するための文字列をエコーする必要が

if(data=="true"){ 
    window.location.reload(); 
} 

完全なコード:

$(document).ready(function(){ 
     $("#upload").submit(function(e){ 
      e.preventDefault(); 
      $.ajax({ 
       url: "upload.php", 
       type: "POST", 
       data: new FormData(this), 
       contentType: false, 
       cache: false, 
       processData:false, 
       success: function(data) 
       { 
         if(data=="true"){ 
          //window.location.reload(); 
          alert("upload finished!"); 
        }   
       } 
      }); 
     }); 
    }); 
関連する問題