2

フォームは(同じページに - contact.php)送信されるようですが、投稿されたデータは使用できません$_POST["message"]。それらは空であるようです(私はそれらをエコーし​​ようとしましたが、何も出力されませんでした)。

これは JavaScript です (ページの head セクションにあります):

$(document).ready(function (){
    $('#contactform').submit(function(){
        var action = $(this).attr('action');
        $.post("contact.php", {
            name: $('#name').val(),
            email: $('#email').val(),
            company: $('#company').val(),
            subject: $('#subject').val(),
            message: $('#message').val()
        }, function(data,status){
            alert("status = " + status);            
            $('#contactform #submit').attr('disabled','');
            if(data=='Message sent!') $('#contactform').slideUp();
           });
           return false;
    });
});  

これはフォームです:

<form action="contact.php" method="post" id="contactform">
  <ol>
     <li>
        <label for="name">First Name <a href="#">*</a></label>
        <input name="name" id="name" class="text">
     </li>
     <li>
        <label for="email">Your e-mail <a href="#">*</a></label>
        <input id="email" name="email" class="text">
     </li>
     <li>
        <label for="company">Company Name</label>
        <input id="company" name="company" class="text">
     </li>
     <li>
        <label for="subject">Subject<br>
        </label>
        <input id="subject" name="subject" class="text">
     </li>
     <li>
        <label for="message">Message <a href="#">*</a></label>
        <textarea id="message" name="message" rows="6" cols="50"></textarea>
     </li>
     <li class="buttons">
        <input type="image" name="submitbtn" id="submitbtn" src="images/but_send_message.gif">
     </li>
  </ol>
</form>  

javascriptのalert("status = " + status);セクションでは、ステータスが としてポップアップ表示されsucessます。

更新しました

これが contact.php の上部にある PHP 部分です。

<?php
  if(isset($_POST["message"])){
    echo '<script>alert("some dummy text");</script>';
  };
?>  

echo が何も出力しないだけでなく、投稿されたデータの値にアクセスできません。PHPMailer は、パラメータに手動で割り当てられたテキストで正常に動作します。

4

6 に答える 6

1

コメントで答えを求めたので

まあ、それは問題ないようですが、代わりに試すこともできます

$('#contactform').serialize();

submitフォームのすべての値を取得するには、フォームが送信されたことを確認するためのより良い方法は何ですか?空のままなので、ue を使用できます

if( isset( $_POST['submitbtn'] ) ) {
    // process the form
}
于 2013-06-20T18:12:26.783 に答える
0

Sheikh heeraが私の質問に対する彼のコメントで述べたように、私はこれを試しました:

$(document).ready(function (){
    $('#contactform').serialize(function(){
        var action = $(this).attr('action');
        $.post("contact.php", {
            name: $('#name').val(),
            email: $('#email').val(),
            company: $('#company').val(),
            subject: $('#subject').val(),
            message: $('#message').val()
        }, function(data,status){
                $('#contactform #submit').attr('disabled','');
                if(data=='Message sent!') $('#contactform').slideUp();
          });
          return false;
    });
});

そして今はうまくいきます!このケースで機能している可能性のある代替ソリューションを提案した他のユーザーに感謝しますが、解決策を見つけたので、それらを確認する必要はありません。

于 2013-06-20T06:37:44.457 に答える
0

投稿値を変数に保存します。例えば:

$name = $_POST["name"];

スクリプトでこの変数をエコーできます。

var name ="<?php echo $name; ?>";
于 2013-06-20T05:48:28.477 に答える