2016-11-23 13 views
0

私は「Coming Soon」ウェブサイトで作業しています。ユーザーが「Contact Us」を選択すると、JavaScriptモーダルが電子メールフォームでポップアップします。私はモーダルのないページにあったのと同じコードを使用しました。そこで動作しますので、今回は電子メールが送信されない理由がわかりません。それはモーダルから送信することとは何か?PHPはモーダルからフォームを送信しません

私がモーダルを作成したのは、ユーザーが「Contact Us」をクリックするまでページの下部にあるvisibility: hidden; opacity: 0;です。ここで、モーダルにはvisibility: visible; opacity: 1;というクラスが追加されます。私はおそらくこれを行うためのより良い方法があると思うが、私は学んでいる、これは私が現時点でできることです。

HTML:これはPHPで

<form class="form" role="form" method="post" action="#contact"> 

<div class="form__text"> 
    <p>Our <strong>new</strong> website will launch in <strong>Spring 2017</strong>.</p> 
    <p>In the meantime, contact us for more information.</p> 
    </div> 
    <div class="form__inputs"> 
    <div class="form__name"> 
     <label for="name" class="name">Name</label><br> 
     <input type="text" class="form-control" id="name" name="name" value="" required=""> 
    </div> 

    <div class="form__email"> 
     <label for="email" class="email">Email</label><br> 
     <input type="email" class="form-control" id="email" name="email" value="" required=""> 
    </div> 

    <div class="form__message"> 
     <label for="message" class="message">Message</label><br> 
     <textarea class="form-control" rows="4" name="message" required=""></textarea> 
    </div> 

    <div class="form__submit"> 
     <button id="submit" name="submit" type="submit">Submit</button> 
    </div> 
    </div> 
</form> 

<?php 
    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $message = $_POST['message']; 
    $from = 'From: xxx'; 
    $to = '[email protected]'; 
    $subject = 'Hello'; 

    $body = "From: $name\n E-Mail: $email\n Message:\n $message"; 

    if ($_POST['submit']) { 
    if (mail ($to, $subject, $body, $from)) { 
     echo '<h4 >Thank you for your message!</h4>'; 
    } else { 
     echo '<h4>Sorry there was an error sending your message. Please try again!</h4>'; 
    } 
} 
?> 

PHPが(ちょうどJSスクリプトの前に)一番下に、HTMLと同じドキュメント(index.phpを)でありますタグ。私が手にエラーがある:それが送信されていない理由をアドバイスしてもらえ

は/

を投稿することはできませんか?私はPHPを良く知らないが、何が起こっているのかを理解しようとしているが、うまくいかない。今後の参考のために

+0

FORMタグで 'action ="#contact "部分を削除して、もう一度やり直してください。 – Cagy79

+0

また、if($ _POST ['submit']) 'をチェックしていますが、submitに' value'属性がないので、フォームを送信しても$ _POST ['submit'] 'は空文字列になります。 'if(!empty($ _ POST))' –

+0

を使用した方が良いでしょうか?<?php echo $ _SERVER ['PHP_SELF']; ?>の代わりに '#contact'のフォームアクション – Gopalakrishnan

答えて

0

、私は問題を解決するもの投稿したいと思います:

  1. 私は送信ボタンをvalue="Send"を追加しました。
  2. 私は、PHPスクリプトがタグの直後であったが、モーダルセクション全体の前にあることを確認しました。
  3. インデックスファイル名をindex.htmlからindex.phpに変更しました。
  4. 私はそれを私のwebhost(私はFTP-edファイル)から直接テストしました。私はそれをローカルでテストする方法がなければならないと確信していますが、私は方法がわかりません。

コメントしたみなさん、ありがとうございます。

関連する問題