フォームから一連の入力を繰り返し実行しようとしています。 foreach入力前の呼び出しが完了した後にのみ起動するajax呼び出しを起動したい。 こちらはStack answerです。テストのためのajaxはjavascript配列を使って繰り返しを呼び出します
$(function(){
var data = [];
$('input[type=text]').each(function(e,i){
var val = $(this).val();
data.push(val);
});
current = 0;
function do_ajax() {
if (current < data.length) {
$.ajax({
type:"POST",
data:"id="+data[current].value,
url:"tester.php",
success:function(result){
$('#div').append(result);
current++;
do_ajax();
}
});
};
}
do_ajax();
});
HTML
<input type='text' id='users[][name]' value='Bob'>
<input type='text' id='users[][name]' value='Frank'>
<input type='text' id='users[][name]' value='Tom'>
<input type='text' id='users[][name]' value='Joe'>
<input type='text' id='users[][name]' value='Bill'>
<input type='text' id='users[][name]' value='Gary'>
<div id='done'></div>
<div id='div'>DIV</div>
tester.phpを、単純です:何
undefined
:
echo $_POST['id'];
私は何を除いてtester.phpをから返されますカント私はIDのためにデータseに配置する必要がありますajaxコールの呼び出し?
私が試してみました:
$('#div').append(result);
へ:
$('#div').append(result.responseText);
は、なぜあなたはちょうどすべて送信しませんので、代わりに
success
コールバックのcomplete
を使用一度にデータ – adeneoこれは私がやろうとしているもののストリップされたバージョンです。私は十分に私の質問を得るために投稿した。各ajax呼び出しは、前の呼び出しの結果をビルドします。 – bart2puck
いいえ - > https://jsfiddle.net/89ggmrgn/2/ – adeneo