私は JavaScript が初めてで、サイトを維持する必要があります。実際の機能は、タブごとに 1 枚のカードをファイルにダウンロードすることです。ユーザーはたくさんのカードを持つことができるので、治療は常に成功するとは限りません (タブが多すぎる)。たとえば、20 個のタブごとにファイルを作成したかったのです。
var printTerm = function(grid){
var rows = grid.selected;
if(rows==null) return;
var ids = rows.map(function(val){return grid.getDataByRow(val).num_terme;});
var nbMax = 20;
var nbFic;
var idsPartiel;
var posDebut;
var posFin;
var a;
if(ids.length > nbMax)
{
idsPartiel = ids;
if(ids.length % nbMax == 0) nbFic = ids.length / nbMax;
else nbFic = ((ids.length - (ids.length % nbMax)) / nbMax) + 1;
for (i=0 ; i< nbFic ; i++)
{
posDebut = (nbMax * i);
if(i == nbFic - 1) posFin = idsPartiel.length + 1;
else posFin = posDebut + nbMax;
ids = idsPartiel.slice(posDebut,posFin);
a = new Element('a', 'id':'download','href':'php/utils/export2pdf.php?ids='+ids.join(',')})
.addEvent('click',function(){location.href=this.href;}).inject(document.body);
a.fireEvent('click');
a.dispose();
}
}
else
{
a = new Element('a',{'id':'download','href':'php/utils/export2pdf.php?ids='+ids.join(',')})
.addEvent('click',function(){location.href=this.href;}).inject(document.body);
a.fireEvent('click');
a.dispose();
}
};
カードの数が nbMax 以下の場合はうまく機能しますが、いくつかのファイルが必要な場合はそうではなく、ループの最後の部分だけがファイルを作成しています。firebug で何が起こるかを確認しようとすると、一連の処理が表示されますが、最後の処理だけが終了しています。私を助けてくれてありがとう。