jQuery
ページ A と呼ぶメイン ページがあります。アイテムがクリックされたときに$.post を実行するナビゲーション メニューがページ A にあります。その後、終了すると、いくつかの div が非表示になり、1 つが表示されます。
それが示すdivにはPHP
、コンテンツを膨らませるファイルがあります。これは $.post の送信先と同じPHP
ファイルで、このファイルはページ A に含まれています。
そのため、ページが nav および非表示の div をロードすると、$.post データのないPHP
ファイルもロードされます。
ここにいくつかのコードがあります。さらに説明します
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
条件でそれができると思っていましたが、明らかに間違っていました。
PSポストを待つのではなく、$account_id変数に値を与えると、テーブルとすべての情報でdivが膨らみます。したがって、PHP
ファイルは操作可能です。その $.post を待たないだけです