配列を実行してphpファイルに送信し、コールバックでphpのダウンロードが完了した後に次の値を送信しようとしています。ここに私がこれまでに持っているものがあります。
私の配列は次のようになります。
["http://example.com/test1.zip", "http://example.com/test2.zip", "http://example.com/test3.zip", "http://example.com/test4.zip", "http://example.com/test5.zip"]
上記はconsole.log(values);からの出力です。下。チェックボックスの値からいくつかのURLを取得します。
$('.geturls').live('click',function(){
var values = new Array();
$.each($("input[name='downloadQue[]']:checked"), function() {
values.push($(this).val());
ajaxRequest($(this).val(),function(response){
console.log(response);
});
});
console.log(values);
return false;
});
次に、これは、コールバックを実行しようとしているajax関数を呼び出します。
function ajaxRequest(urlSend,callback){
var send = {
url: urlSend
}
$.ajax({
type: "POST",
url: "<?php echo base_url(); ?>index.php/upload",
data: send,
//dataType: "json",
//timeout: 8000,
beforeSend: function() {
},
success: function(response) {
callback('added');
},
error: function (response) {
callback('false');
}
});
}
これにより、phpファイルに送信されます。
function upload(){
$output = shell_exec("wget {$_POST['url']} 2>&1");
return true;
}
私がやろうとしているのは、完全にダウンロードされた1つのURLからのコールバックの後で、配列から次の値を取得し、配列内のすべてのURLが完全にダウンロードされるまでそのURLをダウンロードするというように続きます。
現時点では、最初の値をダウンロードするだけで、trueの戻り値が返された後、ループを再開しないため、クラッシュします。
完了後にコールバックを使用して値の配列をループするための最良の方法について助けを探している人にとって、これが理にかなっていることを願っています。