したがって、これは昨日の問題が原因で、エラーが異常だったため、すぐに制御不能になりました。この問題はまだ存在しますが、質問はここで保留になり、現在の問題に関連する新しい質問を修正するように求められました. それから私はここで質問をしましたが、すぐに話題が逸れてしまいました。元の問題を解決した答えを受け入れて先に進むことにしました。私は今、問題を非常に具体的な質問に絞り込んだと信じています.
この問題は今では意味がありません。次のコードがあります
jQuery
$('#projects').click(function (e) {
$.trim(aid);
alert(aid);
$.ajax({
url:'core/functions/projects.php',
type: 'post',
data: {'aid' : aid},
done: function(data) {
// this is for testing
}
}).fail (function() {
alert('error');
}).always(function(data) {
alert(data);
$('#home_div').hide();
$('#pcd').fadeIn(1000);
$('#project_table').html(data);
});
});
PHP
<?php
include "$_SERVER[DOCUMENT_ROOT]/core/init.php";
if(isset($_POST['aid'])) {
$aid = $_POST['aid'];
try {
$query_projectInfo = $db->prepare("
SELECT projects.account_id,
projects.project_name,
projects.pm,
//..irrelevant code
FROM projects
WHERE account_id = ?
");
$query_projectInfo->bindValue(1, $aid, 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>";
//..irrelevant code
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>";
//..irrelevant code
echo "</tr>";
}
echo "</table>";
}
} catch(PDOException $e) {
die($e->getMessage());
}
} else {
echo 'could not load projects table';
}
?>
「#projects」を押してこのコードを実行すると、2 つのアラートが表示されます。この最初のアラートは、変数「援助」の値である「6」を示しており、予想されます。2 番目のアラートは空白です。
ここで私は非常に混乱します。PHP
ファイルを次のように変更して、物事を単純化し、問題の根本に到達した場合
<?php
if(isset($_POST['aid'])) {
$aid = $_POST['aid'];
echo $aid;
} else {
echo 'fail';
}
応答は '6' になりました。これは、ファイルが $_POST['aid'] 変数を受け取り、内部で正しく設定していることを意味しますPHP
。コードを元に戻すと、何も受信しません。
ただし、元のPHP
ファイルをこれに変更すると
<?php
include "$_SERVER[DOCUMENT_ROOT]/core/init.php";
$aid = '6';
try {
$query_projectInfo = $db->prepare("
SELECT projects.account_id,
projects.project_name,
projects.pm,
//..irrelevant code
FROM projects
WHERE account_id = ?
");
$query_projectInfo->bindValue(1, $aid, 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>";
//..irrelevant code
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>";
//..irrelevant code
echo "</tr>";
}
echo "</table>";
}
} catch(PDOException $e) {
die($e->getMessage());
}
?>
次に、PHP
ファイルを直接実行すると、クエリが成功し、動的に作成されたテーブルがページに読み込まれます。吐きたいほど頭が回転します。
というわけでレビュー。援助変数は 6 に設定されており、疑いの余地はありません。ファイルを単純化するPHP
と、$_POST['aid'] 変数を受け取り、データを取得し、PHP
$aid 変数を設定して、それをエコー バックします。ただし、クエリに挿入してテーブルを膨らませようとすると、何も得られません。$_POST['aid'] 変数に依存しないPHP
ようにファイルを変更すると、機能します。ここで何が起こっているのでしょうか?ファイルは投稿なしで機能し、投稿はテーブル インフレーション クエリなしで機能します。PHP
私は完全に迷っているので、誰かがこれを理解するのを手伝ってくれることを本当に願っています
編集
テストのためにphpファイルを変更しました。今はまさにこのように見えます。壁すいません
<?php
include "{$_SERVER['DOCUMENT_ROOT']}/TrakFlex/core/init.php";
if(isset($_POST['aid'])) {
$aid = $_POST['aid'];
echo $aid;
try {
$query_projectInfo = $db->prepare("
SELECT projects.account_id,
projects.project_name,
projects.pm,
projects.apm,
projects.est_start,
projects.est_end,
projects.contact,
projects.trips,
projects.tasks,
projects.perc_complete,
projects.bcwp,
projects.actuals,
projects.cpi,
projects.bcws,
projects.bac,
projects.comments,
projects.status,
projects.project_revenue,
projects.profit_margin,
projects.pm_perc,
projects.audited
FROM projects
WHERE account_id = ?
");
$query_projectInfo->bindValue(1, $aid, PDO::PARAM_STR);
$query_projectInfo->execute();
echo "<table class='contentTable'>";
echo "<th class='content_th'>" . "Job #" . "</th>";
echo "<th class='content_th'>" . "Project Name" . "</th>";
echo "<th class='content_th'>" . "PM" . "</th>";
echo "<th class='content_th'>" . "APM" . "</th>";
echo "<th class='content_th'>" . "Est. Start" . "</th>";
echo "<th class='content_th'>" . "Est. End" . "</th>";
echo "<th class='content_th'>" . "Contact" . "</th>";
echo "<th class='content_th'>" . "Trips" . "</th>";
echo "<th class='content_th'>" . "Tasks" . "</th>";
echo "<th class='content_th'>" . "% Complete" . "</th>";
echo "<th class='content_th'>" . "BCWP" . "</th>";
echo "<th class='content_th'>" . "Actuals" . "</th>";
echo "<th class='content_th'>" . "CPI" . "</th>";
echo "<th class='content_th'>" . "BCWS" . "</th>";
echo "<th class='content_th'>" . "BAC" . "</th>";
echo "<th class='content_th'>" . "Comments" . "</th>";
echo "<th class='content_th'>" . "Status" . "</th>";
echo "<th class='content_th'>" . "Project Revenue" . "</th>";
echo "<th class='content_th'>" . "Profit Margin" . "</th>";
echo "<th class='content_th'>" . "PM%" . "</th>";
echo "<th class='content_th'>" . "Audited" . "</th>";
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>";
echo "<td class='content_td'>" . $row['pm'] . "</td>";
echo "<td class='content_td'>" . $row['apm'] . "</td>";
echo "<td class='content_td'>" . $row['est_start'] . "</td>";
echo "<td class='content_td'>" . $row['est_end'] . "</td>";
echo "<td class='content_td'>" . $row['contact'] . "</td>";
echo "<td class='content_td'>" . $row['trips'] . "</td>";
echo "<td class='content_td'>" . $row['tasks'] . "</td>";
echo "<td class='content_td'>" . $row['perc_complete'] . "</td>";
echo "<td class='content_td'>" . $row['bcwp'] . "</td>";
echo "<td class='content_td'>" . $row['actuals'] . "</td>";
echo "<td class='content_td'>" . $row['cpi'] . "</td>";
echo "<td class='content_td'>" . $row['bcws'] . "</td>";
echo "<td class='content_td'>" . $row['bac'] . "</td>";
echo "<td class='content_td'>" . $row['comments'] . "</td>";
echo "<td class='content_td'>" . $row['status'] . "</td>";
echo "<td class='content_td'>" . $row['project_revenue'] . "</td>";
echo "<td class='content_td'>" . $row['profit_margin'] . "</td>";
echo "<td class='content_td'>" . $row['pm_perc'] . "</td>";
echo "<td class='content_td'>" . $row['audited'] . "</td>";
echo "</tr>";
}
echo "</table>";
} catch(PDOException $e) {
die($e->getMessage());
}
} else {
echo 'could not load projects table';
}
?>
ブラウザに表示される応答は次のとおりです
6<table class='contentTable'><th class='content_th'>Job #</th><th class='content_th'>Project Name</th><th class='content_th'>PM</th><th class='content_th'>APM</th><th class='content_th'>Est. Start</th><th class='content_th'>Est. End</th><th class='content_th'>Contact</th><th class='content_th'>Trips</th><th class='content_th'>Tasks</th><th class='content_th'>% Complete</th><th class='content_th'>BCWP</th><th class='content_th'>Actuals</th><th class='content_th'>CPI</th><th class='content_th'>BCWS</th><th class='content_th'>BAC</th><th class='content_th'>Comments</th><th class='content_th'>Status</th><th class='content_th'>Project Revenue</th><th class='content_th'>Profit Margin</th><th class='content_th'>PM%</th><th class='content_th'>Audited</th></table>
これは、2 つのことを意味します。aid 変数が渡され、設定されています。ただし、クエリで実行すると失敗します。しかし、$aid = '6'; と入力すると、次に、それが機能する値として援助をバインドします。
なぜ?
2回目の編集
js
そのため、他の人の助けを借りて、これはエラーではなくエラーであることがわかりましたphp
. 変数は で 6 に設定されてjs
いますが、いくつかの隠し文字があり、それらを見つけたと思います。firebug を見ると、これがソースとして表示されます
aid=%0D%0A6
どちらが改行になるはずですか?それがエラーの原因だと思います。
こんな感じで助成を受けています
var title;
var aid;
$(".sa").click(function (e) {
title = $(this).text();
$.post('core/functions/getAccountId.php', {
title: title
})
.done(function(data) {
aid = data;
$("#acc_title").html(title);
$('#accountsSelectDiv').hide();
$('#acc_home').fadeIn(1000);
$('#home_div').show();
})
.fail(function(jqXHR, status, error) {
alert(error);
});
});
これは私の入手方法によるものかもしれませんが、私にはわかりません。ただし、ソース内の余分な文字を削除するにはどうすればよいですか? そこが問題だと思う