2017-06-05 39 views
0

私は、チェックボックスをオンにして各行を選択できるテーブルを持っています。 どの行が選択されていても、「Checkout」ボタンを押したときにポップアップする電子メールの本文にこれらの行を貼り付けたいとします。電子メール本文にチェックされたテーブルの行を追加します

現在、「チェックアウト」ボタンを押すたびに、電子メールがポップアップし、選択されているかどうかにかかわらず、テーブルの最初の行が表示されます。

チェックを付けると、複数の選択肢を表示する方法を教えてください。

表:電子メールにデータを追加

<section id="checkout-btn"> 
<button id="checkout" name="order" onclick="sendMail(); return false">Checkout</button> 
</section> 

<br> 

<table id="merchTable" cellspacing="5" class="sortable"> 
    <thead> 
     <tr class="ui-widget-header"> 
      <th class="sorttable_nosort"></th> 
      <th class="sorttable_nosort">Loc</th> 
      <th class="merchRow">Report Code</th> 
      <th class="merchRow">SKU</th> 
      <th class="merchRow">Special ID</th> 
      <th class="merchRow">Description</th> 
      <th class="merchRow">Quantity</th> 
      <th class="sorttable_nosort">Unit</th> 
      <th style="display: none;" class="num">Quantity #</th> 
     </tr> 
    </thead> 
    <tbody> 

     <?php foreach ($dbh->query($query) as $row) {?> 

     <tr> 
      <td class="ui-widget-content"><input type="checkbox" class="check" name="check" id="checkid-<?php echo intval ($row['ID'])?>"></td> 
      <td class="loc ui-widget-content" data-loc="<?php echo $row['Loc'] ?>"><input type="hidden"><?php echo $row['Loc'];?></td> 
      <td name="rows[0][0][rp-code]" class="rp-code ui-widget-content" align="center" data-rp-code="<?php echo $row['Rp-Code'] ?>" id="rp-code-<?php echo intval ($row['Rp-Code'])?>"><?php echo $row['Rp-Code'];?></td> 
      <td name="rows[0][0][sku]" class="sku ui-widget-content" data-sku="<?php echo $row['SKU'] ?>" id="sku-<?php echo intval ($row['SKU'])?>"><?php echo $row['SKU'];?></td> 
      <td name="rows[0][0][special-id]" class="special-id ui-widget-content" data-special-id="<?php echo $row['Special-ID'] ?>" align="center" id="special-id-<?php echo intval ($row['Special-ID'])?>"><?php echo $row['Special-ID'];?></td> 
      <td name="rows[0][0][description]" class="description ui-widget-content" data-description="<?php echo $row['Description'] ?>" id="description-<?php echo intval ($row['Description'])?>"><?php echo $row['Description'];?></td> 
      <td name="rows[0][0][quantity]" class="quantity ui-widget-content" data-quantity="<?php echo $row['Quantity'] ?>" align="center" id="quantity-<?php echo intval ($row['Quantity'])?>"><?php echo $row['Quantity'];?></td> 
      <td name="rows[0][0][unit]" class="unit ui-widget-content" data-unit="<?php echo $row['Unit'] ?>" id="unit-<?php echo intval ($row['Unit'])?>"><?php echo $row['Unit'];?></td> 
      <td name="rows[0][0][quant]" style="display: none;" class="quantity_num ui-widget-content"><input type="textbox" style="width: 100px;" class="spinner" id="spin-<?php echo intval ($row['ID'])?>"></td> 
     </tr> 

    <?php } ?> 

    </tbody> 
</table> 

はJavascript:

function sendMail() { 
    var link = "mailto:[email protected]" 
      + "?subject=" + encodeURIComponent("Order") 
      + "&body=" + encodeURIComponent($('.loc').data('loc')) + '\xa0\xa0' + encodeURIComponent($('.rp-code').data('rp-code')) + '\xa0\xa0' + encodeURIComponent($('.sku').data('sku')) + '\xa0\xa0' + encodeURIComponent($('.special-id').data('special-id')) + '\xa0\xa0' + encodeURIComponent($('.description').data('description')) + '\xa0\xa0' + encodeURIComponent($('.quantity').data('quantity')) + '\xa0\xa0' + encodeURIComponent($('.unit').data('unit')) + '\xa0\xa0' + encodeURIComponent($('.quantity_num').data('quantity_num')); 

    window.location.href = link; 
} 

答えて

1

することは、あなたは試すことができます:

function sendMail(){ 
    var link = "mailto:[email protected]" 
    + "?subject=" + encodeURIComponent("Order") 
    + "&body="; 

    var body = ''; 

    $('table tr input[name="check"]:checked').each(function(){ 
    var current_tr = $(this).parent().parent(); 

    var loc = current_tr.find('.loc').data('loc'); 
    body += encodeURIComponent(loc) + '\xa0\xa0'; 

    var loc =current_tr.find('.rp-code').data('rp-code'); 
    body += encodeURIComponent(loc) + '\xa0\xa0'; 

    }); 

    body += '"'; 
    link += body; 
    console.log(link); 
} 

チェックボックスを含むすべてのTRを繰り返し処理し、:checkedであることを確認する必要があります。 次に、あなたが必要とするaveryデータをbody varに追加します。

+0

これは素晴らしい動作です!私は今、データの各行の後に改行を入れるために '%0D%0A'を使用しています。しかし、最初のエントリの前に改行が必要なのではないですか?最初の行以外のすべてのデータ行に適用することができますので、電子メールを開始するための空白行はありませんか? – Rataiczak24

+0

'body + = '%0D%0A';'の直前 '});' –

+0

Wonderrful、ありがとう! – Rataiczak24

0

あなたは、PHPタグのrows[0][0][rp-code]外のような配列要素を呼んでいます。 PHPタグの中に入れ子にし、各テーブルの要素をエコーすることで、テーブルを簡単に作成できます。そのよう :これは、このようにJSを経由してメールを送信するためにterrbileアイデアですがあなたはまた、ジャバスクリプト内ですべてを行うことができ

echo <tr>; 
echo <td name="rows[0][0][rp-code]">Some Text</td>; 
echo </tr>; 

が、これはあなたの好みに依存し

関連する問題