簡體   English   中英

將javascript變量發送到php並打印出“Array”

[英]sent javascript variable to php and it prints out “Array”

我使用Ajax向PHP發送了包含innerHTML“Basic”的JavaScript變量,並發送了一個包含變量的電子郵件,它返回“Array”而不是“Basic”。 我很困惑。

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);

你的JS看起來很好,因為dataType用於設置響應的類型,而不是請求。

你的PHP有問題

$somiiPlan = ['somiiPlan'];

將會

$somiiPlan = $_POST['somiiPlan'];

在這里你在$ somiiPlan上創建了一個數組,沒有得到post param,所以為什么它返回數組。

另請注意,由於您沒有發回任何響應,並且您沒有在JS中處理響應,因此不需要設置任何dataType。 如果您要發送任何回復,請確保以JSON編碼的形式發送。

刪除這個:

dataType: "json",

這就是給你陣列的原因。

JSON將事物編碼為數組

因此刪除dataType行

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM