非同期通信の2重ループは素人にはオススメしません。
そして、2重ループでなおかつ、再帰処理だったら・・・
まさにややこしくなる事間違いないので
オススメ度は限りなく低いですね。
ただ、こういう事も出来ることを覚えていると
何かの役に立つことは間違いないです。
ちなみに再帰処理は、いろいろな言語で可能ですので
技として覚えていて損はないです。
再帰処理を追う方法はループせずに見るという
感覚を養うことが大事だと思います。
ようするに再帰処理を抜け出すひとつ前の値で
トレースすることが大事だと思われます(´Д`)。
ちなみに非同期通信の場合、非同期ですので
返ってくる順番はめちゃくちゃです。
何か番号を振って処理しないと、うまく処理されない
という事になるのでそこらへんも注意して
組み立ててください。
下記はsampleコードです。
function hoge(cnt){ $.ajax({ type: "POST", url: "json.php", data:{ cnt:cnt }, dataType: 'json', success: function(obj){ var cnt = Number(obj.cnt); var id_name = obj.id_name; $("id_no").html(cnt); $("id_name").html(id_name); $.ajax({ type: "POST", url: "json.php", data:{ mode:"name_chg", cnt:cnt, name:"No." + cnt + ":" + id_name }, dataType: 'json', success: function(obj){ var cnt = Number(obj.cnt); var id_name = obj.id_name; $("id_no").html(cnt); $("id_name").html(id_name); if(id_name!=""){ hoge(++cnt); }else{ alert("もうねぇよ━━━(゚∀゚≡(゚∀゚≡゚∀゚)≡゚∀゚)━━━━!!") } } }); } }); }