2017-09-02 9 views
0

複数のデータを配列として送信し、入力値をAjax経由で電子メールに送信する必要があります。このコードで何が問題になっていますか?配列は、何かがPHPファイルで間違っていると思い、メールには戻らない *** HTML:複数のデータをAjax経由で電子メールで送信する

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

*** 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:

$to = "[email protected]"; 
$message = ' 
     <html> 
      <head> 
      </head> 
      <body> 
       <p>Name: '.$_POST['first name'].'</p> 
       <p>Phone: '.$_POST['phone number'].'</p> 
       $someArray; 
       $extradata = json_decode($_POST['order'], true); 
       foreach ($extradata as $key => $value) { 
       $someArray .= "<p>".$value["image"] . ", " . 
       $value["name"] . "</p>"; 
       </body> 
     </html>'; 
+0

あなたはPHPスクリプトに送信する配列を使って繰り返し処理することができないため、文字列化されたコンテンツをデコードする必要があります。 phpからjson_decode()関数を見て、あなたがしなければならないことを知っているでしょう。 – rebru

+0

他のフォームも表示してください。 –

+0

@rebru一見できますか?json_decode()をPHPに追加しました。ありがとうございます。ありがとうございました –

答えて

0

あなたのPHPコードでは、断片を切り捨てて、編集しやすく、読みやすいようにする必要があります。注意してください。これは動作する解決策ではありません。

/* Defintions */ 
$to = "[email protected]"; 
$extradata = json_decode($_POST['order'],true); 

/* HTML Structure */ 
$head = " 
     <html> 
      <head> 
      </head> 
      <body> 
"; 
$footer = " 
      </body> 
     </html>'; 
"; 

/* Content */ 
$content = ""; 
$content .= "<p>Name:".$_POST['first name']."</p>"; 
$content .= "<p>Name:".$_POST['phone number']."</p>"; 
foreach($extradata as $key => $value) 
{ 
    $content .= "<p>".$key."=".$value['image']."</p>"; 
} 

$htmlEmail = $head.$content.$footer; 
+0

ありがとうございました!!! –

関連する問題