2014-02-06 48 views
0

我發送了一個包含innerHTML「Basic」的JavaScript變量給帶有Ajax的PHP,併發送了一封包含變量的電子郵件,並返回了「Array」而不是「Basic」。我很困惑。發送JavaScript變量到PHP,它打印出「Array」

HTML:

<label class="plan-name">Plan name: <b id="somii-plan">Basic</b></label> 

的JavaScript/AJAX:

var somiiPlan = document.getElementById('somii-plan').innerHTML; 
var request = $.ajax({ 
    type: "POST", 
    url: "somii-pay.php", 
    dataType: "json", 
    data: { 
     "somiiPlan" : somiiPlan, 
     "email" : email, 
    } 
    }); 

PHP:

$somiiPlan = ['somiiPlan']; 
$email = $_POST['email']; 

$email_to = "******"; 
$email_subject = "Somii Test Charge"; 
$email_message = "Your plan is: " . $somiiPlan; 
$headers = 'From: '.$email."\r\n". 
'Reply-To: '.$email_to."\r\n" . 
'X-Mailer: PHP/' . phpversion(); 
@mail($email_to, $email_subject, $email_message, $headers); 

回答

3

的數據類型是用於設置將是什麼樣的反應,而不是要求你的JS看起來不錯。

你的PHP有問題

$somiiPlan = ['somiiPlan']; 

$somiiPlan = $_POST['somiiPlan']; 

在這裏,你是在$ somiiPlan創建一個數組,而不是獲得這個職位PARAM那麼爲什麼它返回數組。

另外請注意,因爲您沒有發送任何迴應,並且您沒有處理JS中的響應,所以不需要設置任何dataType。如果您發送任何響應請確保您使用JSON編碼形式發送它。

+0

感謝親切的先生。我不敢相信我看了看。 –

0

刪除此:

dataType: "json", 

這就是給你的數組。

-1

JSON編碼的東西到一個數組

所以刪除的dataType線