![](/img/trans.png)
[英]Echoing PHP variable into JavaScript variable prints the PHP variable in HTML
[英]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.