私は PHP サイトを作成していますが、次の問題に遭遇しました。ページ上のハイパーリンクをクリックし、小さなデータ項目を php スクリプトに送信し、スクリプトにその機能を実行させ、結果を返すようにしたいと考えています。
このサイトで AJAX を使用して、各ページをサイトの div セクションにロードし、すべてのページ、データ、および応答をこの中央の div にロードします。
<html>
<body>
<div id="topMenuBar">
<div id="contents">
//ALL DATA IS LOADED HERE...//
</div>
</div>
</body>
</html>
そのため、トップ メニューからページを選択すると、次のコードを実行するだけです。
$('#topMenuBar a').click(function(e)
{
e.preventDefault();
$('#contents').load($(this).attr('href'), function()
{
});
});
ページがコンテンツ セクションに読み込まれるようになったので、「results.php」というページを読み込みます。このページは、DB に接続してクエリを実行し、結果を含む HTML テーブルを作成します。テーブルの各行には小さなハイパーリンクがあり、クリックすると値が別の PHP スクリプトに送信され、内容の div がクリアされ、このスクリプト (getInfo.php) からの応答で div が再設定されます。たとえば、行には次の PHP コードがリンクを生成します。
<label class="moreInfo"><a name="test01" onClick="getInfoFromPHP(<?php echo $data[$id]; ?> )">Get Info</a></label>
そのため、テーブルが PHP it によって生成されると、クリックされたリンクは JS 関数に値を渡します。
私が今する必要があるのは、値を PHP スクリプトに送信して、DB を再度クエリし、結果を「コンテンツ」div に挿入することです。私は次の機能を試しています。
function getInfoFromPHP(myVar){
var netID = myVar;
$.ajax({
url: "getInfo.php",
type: "POST",
data: {
networkID: netID
},
success: function(html) {
$('#contents').empty();
$('#contents').load(html);
}
});
};
関数を呼び出すと、データがスクリプトに送信されるように見えますが、firebug から次のエラーが発生します。
POST http://127.0.0.1/private/networks/includes/leave_a_network.php - 200 OK -15ms
GET http://127.0.0.1/%3Ch2%3EHello 403 禁止 21ms "NetworkError: 403 禁止 - http://127.0 .0.1/%3Ch2%3EHello " こんにちは
PHP スクリプトは次のことだけを行っています。
<?php
session_start();
$networkID = $_POST['networkID'];
echo "<h2>Hello World</h2>";
?>
データをPHPスクリプトに送信してdivにロードする最良の方法は何ですか?
フィードバックをお寄せいただきありがとうございます。