2015-06-09 32 views
-1

我的AJAX請求總是發送相同的數據。如何在沒有此問題的情況下使用convertImgToBase64函數?回調函數中的Ajax請求(帶循環)

$imageMaps[0] = '1.jpeg'; 
$imageMaps[1] = '2.jpeg'; 
for (var k in $imageMaps) { 
    $file = $imageMaps[k] 
    convertImgToBase64($url, function(base64Img) { 
     $file = $imageMaps[k] 
     $.ajax({ 
      type: "POST", 
      async: 0, 
      beforeSend: function(xhr, settings) {}, 
      url: '/request.php?imagePost=1', 
      data: {  
       file: $file, 
       data: base64Img 
      }, 
      processData: 1, 
      cache: 1, 
      xhr: function() {}, 
      success: function(){} 
     }); 
    } 
}) 

request.php

<?php 
    echo $_POST['file']; //output always "2.jpeg" 
?> 
+0

「base64Img」在哪裏使用? –

+0

用於上傳數據 – dazzafact

回答

0

您發送

 data: $file 

,但你要發送

data: base64Img 

是從回調函數的第一個參數

convertImgToBase64($url, function(base64Img){ 
-1

現在我明白了。 現在唯一的問題是base64編碼返回String,它不返回值。

 $imageMaps[0]='1.jpeg'; 
     $imageMaps[1]='2.jpeg'; 
     for (var k in $imageMaps) { 
     $file=$imageMaps[k] 
     $.ajax({ 
         type: "POST", 
         async : 0, 
         beforeSend: function(xhr,settings) { 
         $base64=convertImgToBase64($file); 
         settings.data.img =$base64; 
         settings.data.url= $file; 
         }, 
         url: '/request.php?imagePost=1', 
         data: {img:'',url:$file}, 
         processData: 1, 
         cache: 1, 
         //uploadProgress:progress, 
         xhr: function() { }, 
         success: function(){} 
        }); 
      }