2010-11-30 23 views
0

私は$ .ajaxを使用してPHPページにいくつかの値を送信してから電子メールを送信しようとしています 値を取得する方法がわかりません私のPHPファイル内の$アヤックスから、

任意の助けをいただければ幸い、

$(function() { 

$('form#email input[type=image]').click(function() { 

    var name = $('form#email #name').val(); 
    var enq = $('form#email #enq').val(); 
    var dataString = 'name=' + name + '&enq=' + enq; 

    $.ajax({ 
     type:'POST', 
     url:'email.php', 
     data:dataString, 
     success:function() { 
      $('form#email').fadeOut(); 
     } 

    }); 
    $('form#email')[0].reset(); 
    return false;        
}); 
}); 

PHPファイル

if (isset($_POST['submit_x'])) { 

$name = $_POST['name']; 
$enq = $_POST['enq']; 
$name = htmlentities($name); 
$enq = htmlentities($enq); 

//echo $name,$enq; 

$to = '[email protected]'; 
//$to = '[email protected]' 
$subject = 'Enquiry'; 
$message = $enq; 

mail($to,$subject,$message); 

if(!mail) { 
    echo 'failed to send mail'; 
} 
} 

電子メールが送信されません。 $ .ajaxを使用せずにフォームを送信すると、通常メールが送信されます。

あなたが提出していない変数、submit_xのためにチェックしているおかげで

+0

あなたのデータを送信されていないsubmit_xをチェックされています。 – Gazler

答えて

2

、あなたはその外側ifチェックを削除する必要があります。また、それは(そこに&があるかどうか?)jQueryのは正しく文字列をシリアル化できるようにする方が良いでしょう。このように:

$(function() { 
    $('#email input[type=image]').click(function() { 
    $.ajax({ 
     type:'POST', 
     url:'email.php', 
     data: { name: $('#name').val(), enq: $('#enq').val() } 
     success:function() { 
      $('form#email').fadeOut(); 
     } 
    }); 
    $('#email')[0].reset(); 
    return false;        
    }); 
}); 

それとも<form>要素は(優雅な劣化のために、彼らが必要、)適切な名前の属性を持っている場合は、 data: { name: $('#name').val(), enq: $('#enq').val() }
data: $('#email').serialize()と置き換えることができます。

1

は、PHPに「submit_x」を送信してみてください:)

0

あなたはあなたのデータを定義するデータマップを使用することができます。

var name = $('form#email #name').val(); 
    var enq = $('form#email #enq').val(); 

    $.ajax({ 
    type: 'POST', 
    url: 'email.php', 
    dataType: 'html', 
    data: { 
    submit_x : 1, 
    name  : name, 
    enq  : enq 
    }, 
    success: function(html){ 
    $('form#email').fadeOut(); 
    }, 
    error: function(e, xhr) { alert('__a Error: e: ' + e + ', xhr:' + xhr); } 
    }); 
関連する問題