0

opencart のバウチャー一覧で、バウチャーの有無を確認して表示し、「送信」をクリックすることで正式にバウチャーを送信することができます。何らかの理由で、このプロセスは、<a>この送信オプションの直後にリンク タグを削除した場合にのみ機能するようです。理由がわかりません。ここにリストがあります...

           <?php foreach ($vouchers as $voucher) { ?>
        <tr>
          <td style="text-align: center;"><?php if ($voucher['selected']) { ?>
            <input type="checkbox" name="selected[]" value="<?php echo $voucher['voucher_id']; ?>" checked="checked" />
            <?php } else { ?>
            <input type="checkbox" name="selected[]" value="<?php echo $voucher['voucher_id']; ?>" />
            <?php } ?></td>
          <td class="left"><?php echo $voucher['code']; ?></td>
          <td class="left"><?php echo $voucher['from']; ?></td>
          <td class="left"><?php echo $voucher['to']; ?></td>
          <td class="right"><?php echo $voucher['amount']; ?></td>
          <td class="left"><?php echo $voucher['theme']; ?></td>
          <td class="left"><?php echo $voucher['status']; ?></td>
          <td class="left"><?php echo $voucher['date_added']; ?></td>
          <td class="right">[ <a onclick="sendVoucher('<?php echo $voucher['voucher_id']; ?>');"><?php echo $text_send; ?></a> ]
            <?php foreach ($voucher['action'] as $action) { ?>
            [ <a href="<?php echo $action['href']; ?>"><?php echo $action['text']; ?></a> ]
            <?php } ?></td>
        </tr>
        <?php } ?>

上記のコードでは、2 番目の を削除する<a href="<?php echo $action['href']; ?>"><?php echo $action['text']; ?></a>onclick正常に機能しますが、削除しないと、バウチャーを送信する代わりに、そのバウチャーの編集領域に移動するだけです。

機能sendVoucherはありますが、その機能が問題に関連しているかどうかさえわかりません。

<script type="text/javascript"><!--
 function sendVoucher(voucher_id) {
$.ajax({
    url: 'index.php?route=sale/voucher/send&token=<?php echo $token;       ?>&voucher_id=' + voucher_id,
    type: 'post',
    dataType: 'json',
    beforeSend: function() {
        $('.success, .warning').remove();
        $('.box').before('<div class="attention"><img src="view/image       /loading.gif" alt="" /> <?php echo $text_wait; ?></div>');
    },
    complete: function() {
        $('.attention').remove();
    },
    success: function(json) {
        if (json['error']) {
            $('.box').before('<div class="warning">' + json['error'] + '</div>');
        }

        if (json['success']) {
            $('.box').before('<div class="success">' + json['success'] + '</div>');
        }       
    }
});
    return false;
  }
  //--></script> 

編集:より明確にするために、行の出力htmlを次に示します...

                      <tr>
          <td style="text-align: center;">                <input type="checkbox" name="selected[]" value="4" />
            </td>
          <td class="left">34123123</td>
          <td class="left">adrian</td>
          <td class="left">Adrian</td>
          <td class="right">€20.00</td>
          <td class="left">Birthday</td>
          <td class="left">Enabled</td>
          <td class="left">07/02/2013</td>
          <td class="right">[ <a onclick="sendVoucher('4');"  >Send</a> ]
                            [ <a href="http://mysite.com/admin/index.php?route=sale/voucher/update&amp;token=c9b6332af21513c0a3af8e4265fa62a1&amp;voucher_id=4">Edit</a> ] 
            </td>
        </tr>
4

0 に答える 0