0

このJS関数を2ページ開くようにしました

 function edit(id){
    window.open('<?php echo site_url();?>store_out/store_out_print/'+id);
    window.open('<?php echo site_url();?>store_out/delivery_print/'+id);
    document.getElementById('print').target = '_blank';
}

ユーザーが1つの行を選択し、印刷画像をクリックして2ページを開くことができる、すべての可能なレコードを表示するテーブルがあります。

 <?php
         for($i=0;$i<sizeof($storeout);$i++){ ?>
   <tr class="gradeZ" id="<?php echo $storeout[$i]->storeout_id;?>" onclick="edit(this.id); ">
                <td><?php printf("%06d",$i+1);?></td>
                <td><?php echo $storeout[$i]->storeout_id;?></td>
                <td><?php echo $storeout[$i]->storeout_modified_time;?></td>
                <td><?php echo $account[$i][0]->account_name;?></td>
                <td><?php echo $storeout[$i]->rof_id != 0 ? "R.O.F" : "S.O";?></td>


            </tr>
        <?php } ?>

特定の行を選択して印刷画像をクリックし、2つの機能を実行して、2つの異なるページ(delivery / store_out)を開きます。

アイデアはありますか?

4

1 に答える 1

0

tdループ内でプログラムによって生成されたaにあると仮定します(つまり、1 、、、およびtrが複数あると仮定します)。また、jQueryが利用可能であると想定します。trtdimg

最初の問題は、ループ内に複数の行が作成されている場合、同じものがたくさんあることid="print"です。これは良いjsではありません。

store_outid属性に(またはコントローラーに取得しようとしているIDを)追加する必要があります。のようなものid="print_<?php echo $thing->id;?>"。これにより、編集機能に渡したいIDを取得できます。class="print"また、以下を簡単にするaを追加します。したがって、行全体は次のようになります。

<td width="5%"><a id="print_<?php echo $thing->id; ?>" class="print" href="#" ><img src="<?php echo site_url();?>/images/print.png" border="0" title="Print" height="25" width="25"/> </a></td>

これは次のようなものを出力します:

<td width="5%"><a id="print_1234" class="print" href="#" ><img src="http://example.com/images/print.png" border="0" title="Print" height="25" width="25"/> </a></td>

id第二に、私が知る限り、あなたはメソッドにを渡していないということです。上記に注意したことを考慮して、id属性からidをプルできます。

$('.print').click(function(){
    var id = $(this).attr('id').split('_')[1];
    edit(id);
})
于 2013-01-30T20:27:36.440 に答える