2011-01-26 5 views
0

から私が持っているhtmlコードデータを取得することはできません。PHP +のAjaxのファイルアップローダー、だから、POST

<form id="loginIMGForm">    
<input type="file" name="file" id="loginIMG" /> 
<br /> 
<input type="submit" name="submit" value="Submit" id="submitloginIMG" /> 
</form> 

<div id="loginIMGStatus">Select an image and upload.</div> 

と私はその後、PHPコード:

<?php 

$imageinfo = getimagesize($_FILES['loginIMGForm']['tmp_name']); 

if($imageinfo['mime'] != 'image/gif' && $imageinfo['mime'] != 'image/jpeg') { 
    echo "Sorry, we only accept GIF and JPEG images\n"; 
    exit; 
} 

$uploaddir = 'uploads/'; 
$uploadfile = $uploaddir . basename($_FILES['loginIMGForm']['name']); 

if (move_uploaded_file($_FILES['loginIMGForm']['tmp_name'], $uploadfile)) { 
    echo "File is valid, and was successfully uploaded.\n"; 
} else { 
    echo "File uploading failed.\n"; 
} 
?> 

とjQueryは以下のとおりです。

$('#loginIMGForm').submit(function() { 
     // 'this' refers to the current submitted form 
     var str = $(this).serialize(); 
     alert(str); 
     $.ajax({ 
      type: "POST", 
      url: "modules/upload.php", 
      data: str, 
      success: function(msg){ 
       $("#loginIMGStatus").ajaxComplete(function(event, request, settings){ 
        if(msg == 'OK'){ result = 'Login Image is updated'; } 
        else{ result = msg; } 

        $(this).html(result); 
       }); 

      } 

     }); 

     return false; 
    }); 

I did debuging using alert, the data is empty. What did I do wrong. 

ありがとうございました。

答えて

0

なぜajaxCompleteに電話しますか?

ただ、これは代わりに行います。あなたはデータが空であると言うとき、あなたはalerthtmlコンポーネントを呼び出すとき

また
$.ajax({ 
     type: "POST", 
     url: "modules/upload.php", 
     data: str, 
     success: function(msg){ 
      var result; 
      if(msg == 'OK'){ result = 'Login Image is updated'; } 
       else{ result = msg; } 

       $(this).html(result); 
      }); 

     } 

    }); 

、あなたは意味ですか?

serializefileに使用することはできません。それはサポートされておらず、実際には意味をなさない。 を参照してください。また、まだ問題ではありませんでしたが、ajaxCompleteを呼び出す際に問題が発生すると思われます。 successパラメータは、ajaxリクエストが完了したときにあなたの関数を呼び出すことをすでに処理しています。私は本当にあなたのコードで何が起こるかわからない。

+0

アラートを呼び出すと、データは空です。だから私はその問題は.ajaxCompleteの部分からだとは思わない。 –

+0

@shadow_boi、上の私の編集を参照してください –

+0

ああ。私はファイルに対してシリアライズを使用できないことを知りませんでした。リンクと情報をありがとう。 Chrisに感謝します。 –

関連する問題