将javascript变量发送到php并打印出“Array”

时间:2014-02-06 02:15:47

标签: javascript php ajax json

我使用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);

3 个答案:

答案 0 :(得分:3)

您的JS看起来很好,因为dataType用于设置响应的类型,而不是请求。

你的PHP有问题

$somiiPlan = ['somiiPlan'];

将是

$somiiPlan = $_POST['somiiPlan'];

这里你在$ somiiPlan上创建了一个数组,没有得到post param,为什么它返回数组。

另请注意,由于您没有发送任何响应,并且您没有在JS中处理响应,因此不需要设置任何dataType。如果您要发送任何回复,请确保以JSON编码的形式发送。

答案 1 :(得分:0)

删除它:

dataType: "json",

这就是给你阵列的原因。

答案 2 :(得分:-1)

JSON将事物编码为数组

所以删除dataType行