我有一个主页面,我们称之为页面A.我在页面A上有一个导航菜单,当点击一个项目时,它会从jQuery
执行$ .post。然后当它完成时它会隐藏几个div并显示一个。
它显示的div有一个PHP
文件膨胀内容。这是它发送$ .post的PHP
文件,该文件包含在第A页。
因此,当页面加载导航和隐藏的div时,它还会加载PHP
文件而不用 $ .post数据。
这是一些代码,我将进一步解释
的jQuery
$('#projects').click(function (e) {
$.trim(account_id);
$.post('core/functions/projects.php', {
account_id: account_id
})
.done(function(data) {
$('#scd').hide();
$('#icd').hide();
$('#pcd').fadeIn(1000);
})
.fail(function(jqXHR, status, error) {
alert(error);
});
});
PHP
<?php
if(empty($_POST) === false) {
$account_id = $_POST['account_id'];
try {
$query_projectInfo = $db->prepare("
SELECT projects.account_id,
projects.project_name,
.... //more code, not relevant
FROM projects
WHERE account_id = ?
");
$query_projectInfo->bindValue(1, $account_id, PDO::PARAM_STR);
$query_projectInfo->execute();
$count = $query_projectInfo->rowCount();
if ($count > 0) {
echo "<table class='contentTable'>";
echo "<th class='content_th'>" . "Job #" . "</th>";
echo "<th class='content_th'>" . "Project Name" . "</th>";
... //more code, not relevant
while ($row = $query_projectInfo->fetch(PDO::FETCH_ASSOC)) {
echo "<tr>";
echo "<td class='content_td'>" . "<a href='#'>" . $row['account_id'] . "</a>" . "</td>";
echo "<td class='content_td'>" . $row['project_name'] . "</td>";
.... //more code, not relevant
}
echo "</table>";
}
} catch(PDOException $e) {
die($e->getMessage());
}
} else {
echo 'could not load projects table';
}
?>
现在,当我在导航菜单上单击#project时,我所看到的是“无法加载项目表”的else
语句。我相信这是因为在点击导航项之前加载了PHP
文件。似乎当我点击该项目并发送帖子时,就像PHP
页面上写着“我已经加载伙伴,我不再这样做了”。
所以我的问题是,如何让PHP
文件等待加载?我认为if else
条件会这样做,显然我错了。
P.S。如果我给$ account_id变量一个值而不是等待post,则div会膨胀表和所有信息。因此PHP
文件正常运行。它只是不等待$ .post
答案 0 :(得分:2)
此检查永远不会触发。 empty($_POST) === false
如果您只是想检查$_POST
是否有数据,请使用isset($_POST)