javascript - JQueryとPHPを使用してPOSTでattr値とform値を送信する方法は?

原文 javascript php jquery html forms

したがって、入力ボックスと、クリックすると強調表示されるdivタイプの3つのフォームがあります。属性と「#email」値を送信し、PHP経由で電子メールで送信するようにしようとしています。

これが私のHTMLです。

<form id="form" name="form" class="custompurchase" action="custom.php" method="post">
    <input type="email" id="email" name="email" maxlength="40" class="textbox2" placeholder="Email address" required/>
    <a class="customoption storage" onclick="activate(this, 'storage');" data-name="500GB HDD">
        ...
    </a>
    <a class="customoption storage" onclick="activate(this, 'storage');" data-name="1TB HDD">
        ...
    </a>
    <a class="customoption storage" onclick="activate(this, 'storage');" data-name="2TB HDD">
        ...
    </a>
</form>


これが私のJQueryです。

$(function() {
    var form = $('#form');
    $(form).submit(function(event) {
        event.preventDefault();
        var email = $("#email").val();
        var storage = $(".customoptionactive.storage").attr("data-name");
        $.ajax({
            type: "POST",
            url: $(form).attr("action"),
            data: email, storage
        })
        .done(function(response) {
            ...
        });
    });
});


そして最後に私のPHP:

<?php
    $emailto = "[email protected]";
    $subject = "Custom PC";
    $email = $_POST['email'];
    $storage = $_POST['storage'];
    $entire = "Email: ".$email."\n"."Storage: ".$storage;
    mail($emailto, $subject, $entire);
?>


ただし、メールを見ると、これですべてがわかります。

Email:
Storage:


私は何を間違えていますか? dataTypeを設定する必要がありますか?ご回答ありがとうございました!

編集:単純な構文エラーであるため、同様の質問とは異なります。
答え
data$.ajaxオプションを変更します

 data: email, storage




 data: {email:email, storage:storage}
関連記事

javascript - 入力した文字列ではなく、Webページ全体がファイルブロブに保存されるのはなぜですか?

javascript - メソッドの外部でjavascript変数値フォームを使用する

javascript - javascriptの.matchと.testの違いは何ですか[非公開]

javascript - TinyMCE 4 addButton()のカスタムボタンにカスタムクラスを追加する方法

javascript - JSは、文字列で始まるキーを持つオブジェクトの値を取得します

javascript - webglを使用して大きな配列を処理および更新する方法は?

javascript - 段落および見出しHTML要素で内部テキストが機能しない

javascript - jQuery変数を1ずつインクリメントまたはデクリメントします

javascript - Expressアプリで次のルートのパスを取得する方法

javascript - Es2015のカーリーブラケット[複製]