2016-10-19 4 views
1

私のWebページにあるdivなどのコンテンツをPHPのメール機能を使用して電子メールで送信できるようにするため、「ありがとうございました。 "ページ。しかし、私はいくつかの問題にぶち当たっています。私はこのEmail Div ContentEmail div text content using PHP mail function、およびGET entire div with its elements and send it with php mail functionの質問にはすでにガイドとして投稿されていますが、それは私のために働いていないようです。私は電子メールで送信し、メッセージ内の "あなたのEメール送信ありがとうございました"ページに表示したいと思います。私が間違っていることは何ですか?HTML/JQuery:全体部門/テーブルにメールを送信

HTML私は介して送信したい表は次のとおりです。

<div id="add_items_content" style="width:100%;">   
     <center> 
      <table id="add_item_here" style="width:98%;"> 
       <tbody> 
        <tr><td>Item</td><td>Years</td><td>Quantity</td><td>Training Hours</td><td>Total Item Cost</td></tr>  
       </tbody> 
      </table> 
     </center> 
     <center> 
      <table id="add_totals_here" style="width:98%;"> 
       <tbody> 
        <tr><td cospan="3">&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr> 
       </tbody> 
      </table> 
     </center> 
    </div> 
    <script> 
     $(document).ready(function(){ 
      $('table[id^=add_item_here]').hide(); 
      $('table[id^=add_totals_here]').hide(); 
      $('div[id^=office_submit]').hide(); 
      $('div[id^=show_form]').hide(); 

      //First obtaining indexes for each checkbox that is checked 
      $('input[name=item_chk]').change(function(){ 
      var index = this.id.replace('item_chk',''); 
      if($(this).is(':checked')){ 
       AddNewItem(index); 
      }else{ 
       RemoveItem(index); 
      } 
       CalculateTotals(); 

      }); 

      function AddNewItem(index){ 
       // Get hidden variables to use for calculation and tables. 
       var item = $('#item_chk'+index).parent().text().trim(); 
       var itemdescr = $('#itemdescr'+index).val(); 
       var traininghrs = parseInt($('#traininghrs'+index).val()); 
       var qty = parseInt($('#qty'+index).val()); 
       var yrs = parseInt($('#yrs'+index).val()); 

       var item_cost = 0; 
       // Calculating item cost for just that one checkbox 
       item_cost+=parseInt($('#servicefee'+index).val()); 
       item_cost*=parseInt($('#yrs'+index).val()); 
       item_cost+=parseInt($('#licensefee'+index).val()); 
       item_cost*=parseInt($('#qty'+index).val()); 
       var traininghrs = parseInt($('#traininghrs'+index).val());   
       //Display each item that is checked into a table 
       $('#add_item_here tr:last').after('<tr id="row_id'+index + '"><td style=\"width:35%;\">' + itemdescr +'</td><td style=\"width:15%;\" >' + yrs +'</td><td style=\"width:16%;\">' + qty +'</td><td style=\"width:18%;\">' + traininghrs + '</td><td style=\"width:16%;\">$'+ item_cost + '</td></tr>');  
      } 

      function RemoveItem(index){ 
       $('table#add_item_here tr#row_id'+index).remove(); 
      } 

      function CalculateTotals(){ 
       var total_cost = 0; 
       var total_training = 0; 
       $('input:checkbox:checked').each(function(){ 
        var index = this.id.replace('item_chk',''); 
        var item_cost = 0; 
        // Calculating item cost for just that one checkbox 
        item_cost+=parseInt($('#servicefee'+index).val()); 
        item_cost*=parseInt($('#yrs'+index).val()); 
        item_cost+=parseInt($('#licensefee'+index).val()); 
        item_cost*=parseInt($('#qty'+index).val()); 
        var traininghrs = parseInt($('#traininghrs'+index).val()); 

        total_cost +=item_cost; 
        total_training +=traininghrs; 


      }); 

       if(total_cost > 0 || total_training > 0) { 
        $('#add_totals_here tr:last').children().remove(); 
        $('#add_totals_here tr:last').after('<tr ><td colspan="3" style=\"width:66%;\">TOTALS:</td><td style=\"width:18%;\">' + total_training + '</td><td style=\"width:16%;\">$'+ total_cost + '</td></tr>'); 
        $('#add_item_here').show(); 
        $('#add_totals_here').show(); 
        $('#office_submit').show(); 
       }else{ 
       $('table[id^=add_item_here]').hide(); 
        $('table[id^=add_totals_here]').hide(); 
        $('div[id^=office_submit]').hide(); 
       }   
      } 
       $("input[name='office_submit']").click(function() { 
        $('#show_form').css('display', ($(this).val() === 'Yes') ? 'block':'none'); 
       }); 
       // Quantity change, if someone changes the quantity 
         $('select[name=qty]').change(function(){ 
          var index = this.id.replace('qty',''); 
           if($("#item_chk"+index).is(':checked')){ 
            RemoveItem(index); 
            AddNewItem(index); 
            CalculateTotals(); 
         } 
        }); 

        // Years change, if someone changes the years   
        $('select[name=yrs]').change(function(){ 
        var index = this.id.replace('yrs',''); 
        if($("#item_chk"+index).is(':checked')){ 
         RemoveItem(index); 
         AddNewItem(index); 
         CalculateTotals(); 
        }   
       });  
      }) 
      </script> 

裁判ナンバー1。これまで私が試してみました:スクリプトを使用して

<script> 
    function mail_content() {  
     var tablesContent = document.getElementById("add_items_content").innerHTML;  
     $.post('send_form.email.php',{content:tablecontent},function(data) { 
     }); 
    } 
</script> 

は私がsend_form_email.phpに追加しました:

<?php 
$txt = $_POST['content']; 

    mail($to,$subject,$message,$txt,$headers); 
    mail($from,$subject2,$message2,$txt,$headers2); 
?> 

裁判ナンバー2:

<input name="data" id="data" type="hidden" value=""></input> 

<script type="text/javascript"> 
     $(document).ready(function(){ 
      $("#price_quote").submit(function() { //notice submit event 
      $("#my_hidden_field").val($("#add_items_content").html()); //notice html function instead of text(); 
      }); 
     }); 
</script> 
:私も隠しフィールドにそれを保存しようとしました

そしてsend_form_email.php私はそれがそれが現れているかどうかを見て、そのメッセージに入れます。

$txt = $_POST['data']; 
$message = "Content: ".$txt."\n"; 

mail($to,$subject,$message,$txt,$headers); 
mail($from,$subject2,$message2,$txt,$headers2); 

試用番号3:でも、私は何をしないか、間違ってやっているのAjax

<script> 
    function mail_content(){  
     var html = $('#add_items_content').html(); 
     $.ajax(function{ 
      type="POST", 
      url:"send_form_email.php", 
      data:"data="+html, 
      success:function(response){ 
       $('#add_items_content').show().html("email sent"); 
      } 
     }); 
     } 
    </script> 

を試してみましたか? div/tableが表示されたり表示されないのはなぜですか?

+0

あなたは少しだけあなたが私たちのために抱えている問題を明らかにすることはできます - 電子メールが送信されているが、それは情報が不足していますが?それとも全く送らないのですか?これらの試みのいずれかでエラーが返されましたか? – Santi

+0

最初は、メッセージ内に「ありがとうございました、あなたのメールが送信されました」ページに表示しようとしていますが、メールに表示しようとしています。今、私が得ているのは、何も現れないということです。他のページには何も送られていないのです。例えば、$ txt = $ _POST ['data']; $ message = "Content:"。$ txt。 "\ n"一度それが通過すると、単に「コンテンツ:」と表示されるので、コンテンツは表示されません。それが何かをしなければならないなら、今私はWordpressを通して働いています。 – ShadyNicNack

答えて

1

あなたは本当にエラーについて、JSコンソールをチェックする必要があります:

var tablesContent = document.getElementById("add_items_content").innerHTML;  
      ^---note the "sC" 
    $.post('send_form.email.php',{content:tablecontent},function(data) { 
               ^--note the c 

JSのVARSは、大文字と小文字が区別され、そしてあなたのためになりませ魔法正しいタイプミス。

そして、このあります:

<input name="data" id="data" type="hidden" value=""></input> 
         ^---id 'data' 
$("#my_hidden_field").val($("#add_items_content").html()); 
      ^--- completely DIFFERENT ID 
+0

試行番号1を修正しましたが動作しませんでした。固定の試用番号とそれは働いた! – ShadyNicNack

+0

ShadyNicNack

関連する問題