我正在尝试使用AJAX在PHP中发送的数据但由于某种原因说数组是空的我也没有从PHP或我的控制台中得到任何错误。 console.log(data)显示带有选择值的数组。在PHP之后有一个HTML,其中script.js是。 console.log
的index.php
create table FactTable (
id1 int,
id2 int,
value1 int)
with (distribution = hash(id1));
create table StageTable (
id1 int,
id2 int,
value1 int)
with (distribution = replicate);
create table UpdatedFact
with (distribution = hash(id1))
as
select f.id1,
f.id2,
case when s.id1 is not null and s.value1 > f.value1
then s.value1
else f.value1
end as value1
from FactTable f
left outer join StageTable s
on s.id1 = f.id1
and s.id2 = f.id2
truncate table FactTable;
alter table UpdatedFact switch to FactTable;
drop table UpdatedFact;
的script.js
<?php
error_reporting(-1);
$value1 = "";
$value2 = "";
print_r($_POST);
if (isset($_POST['date']) && isset($_POST['date'])) {
if (isset($_POST['date'])) {
echo "Yes, mail is set";
$value1 = $_POST['date'];
$value2 = $_POST['quantity'];
} else {
echo "No, mail is not set";
}
exit;
}
echo $value1;
echo $value2;
$canmakereservation = "https://www.planyo.com/rest/?method=can_make_reservation&api_key=YOURKEY&resource_id=110556&start_time=2018-04-25 09:00&end_time=2018-04-25 12:00&quantity=5";
$cleancanmakereservation = preg_replace("/ /", "%20", $canmakereservation);
$reservationavailable = file_get_contents("$cleancanmakereservation");
$reservationAvailable = json_decode($reservationavailable, true);
// echo "$cleancanmakereservation";
// var_dump($reservationAvailable);
?>
答案 0 :(得分:3)
第一!您的代码中存在重复条件User-Agent
(3次):
isset($_POST['date'])
二!您应该删除 if (isset($_POST['date']) && isset($_POST['date'])) {
if (isset($_POST['date'])) {
echo "Yes, mail is set";
$value1 = $_POST['date'];
$value2 = $_POST['quantity'];
} else {
echo "No, mail is not set";
}
exit;
}
,然后重试!
第三:如果exit;
和$value1
不是字符串,则应检查变量类型。 $value2
是假的。试试echo
修改强>
试试这个,它对我有用! return
目的地:
.php
$value1 = "";
$value2 = "";
if (isset($_POST['date']) && isset($_POST['quantity'])) {
echo "Yes, mail is set";
$value1 = $_POST['date'];
$value2 = $_POST['quantity'];
}
else {
echo "No, mail is not set";
}
echo $value1;
echo $value2;
:
ajax
答案 1 :(得分:0)
检查AJAX请求中的ContentType标头。它可能是作为JSON发送而PHP没有解串器进入$ _POST数组。它可能需要作为序列化表单数据发送,如this example中所示。
根据我的经验(尽管在.NET中),如果数据没有被服务器从请求中挑选出来,那么通常情况下ContentType标头没有正确设置,以便您如何&# 39;重新传递数据,以便服务器不了解如何将其拉出来。
修改强>
您可以通过在传递给contentType
的选项对象中设置$.ajax
属性来控制此操作,默认显然是'application/x-www-form-urlencoded; charset=UTF-8'
,并且当您将对象传递给data
属性时,根据processData
属性,默认行为是将其序列化为查询字符串,以适合默认的contentType。来源:jQuery docs。
所以我的错误看起来应该都匹配,尽管我通常喜欢明确指定这些属性以避免混淆。