简体   繁体   English

如何通过Ajax将具有表单值的对象的js数组发送到电子邮件

[英]How to send js array of objects with form values via Ajax to email

I've got html form with inputs and js array of objects. 我有输入和js对象数组的html形式。 Array of objects doesn't correlates with the array. 对象数组与数组不相关。 They are separate units. 它们是独立的单元。

html: HTML:

    <form id="form-order">
      First name:<br>
      <input type="text" name="firstname">
      <input type="tel" name="phonenumber" >
      <input type="submit" value="Submit">
    </form> 

JS JS

$.ajax({
   type: "POST",
   data: {mydata: JSON.stringify(MyObjects)}, 
   url: "index.php",
   success: function(data){
   }
});
    var array = [{count:1,image:"images/1.jpg",name:"Bouquet 1",price:49},{count:5,image:"images/1.jpg",name:"Bouquet 9",price:77}];
            $("#form-order").submit(function() {

                        var order_data = cart;
                        $.ajax({
                        type: "POST", 
                        url: "../order.php", 
                        data: {form: form_data, 
                        order:JSON.stringify(order_data)},
                        success: function() {                         
                        console.log('OK');
                        });
                });

php PHP

$to = "mail@mail.ru";
    $message = '
            <html>
                <head> 
                </head>
                <body>
                   <p>Name: '.$_POST['first name'].'</p>
                   <p>Phone: '.$_POST['phone number'].'</p>
                   $someArray;
                   foreach ($extradata as $key => $value) {
                   $someArray .= "<p>".$value["image"] . ", " . 
                   $value["name"] . "</p>";
                  </body>
            </html>';

Could you check, please, weather this code works right or not? 您能否检查一下此代码是否正确?

     <form id="formoid" action="" method="post">
                <input type="text" id="firstname" name="firstname" >
                <input type="text" id="lphonenumber" name="lphonenumber" >
                <input type="submit" id="submitButton"  name="submitButton" value="Submit">
     </form>
you could do something like this

    <script type='text/javascript'>
        /* attach a submit handler to the form */
        $("#formoid").submit(function(event) {

        var array = [{count:1,image:"images/1.jpg",name:"Bouquet 1",price:49},{count:5,image:"images/1.jpg",name:"Bouquet 9",price:77}];
          /* stop form from submitting normally */
          event.preventDefault();

          /* get the action attribute from the <form action=""> element */
          var $form = $( this ),
              url = $form.attr( 'action' );

          /* Send the data using post with element id firstname, lphonenumber along with your array*/
          var posting = $.post( url, { name: $('#firstname').val(), name2: $('#lphonenumber').val(),extradata: array } );

          /* Alerts the results */
          posting.done(function( data ) {
            alert('success');
          });
        });
    </script>

and in php you could do something like,

    <?php
    if(isset($_POST['name'])){
    // To send HTML mail, the Content-type header must be set
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    // Convert JSON string to Array
    $extradata = json_decode($_POST['extradata'], true);
   // print_r($someArray);        // Dump all data of the Array
   // Loop through Array if necessary
  $someArray;
  foreach ($extradata as $key => $value) {
    $someArray .= "<p>".$value["image"] . ", " . $value["name"] . "</p>";
  }

    $to = "mail@mail.ru";
        $message = '
                <html>
                    <head> 
                    </head>
                    <body>
                       <p>Name: '.$_POST['first name'].'</p>
                       <p>Phone: '.$_POST['phone number'].'</p>'.$someArray.'
                      </body>
                </html>';
    $subject = "Wooo Email!";
    mail($to, $subject, $message, "From: system@yourdomain.com\r\n", $headers);
    } else {
      echo "error";
    }?>

or you could use phpmailer or swift mailer for the same

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM