これが私が望むものです。input.php という PHP ページで、ユーザーは html フォームでユーザー名を送信します。これは MYSQL データベースに保存されます。すべてのユーザー名について MYSQL データベースをクエリする results.php というページがあります。
私がする必要があるのは、5秒ごとにいくつかのjqueryコード(おそらくgetJSON)がresults.php(同じページ)からJSON文字列を取得することです。この JSON 文字列は、ユーザーが input.php ページにユーザー名を追加すると更新される場合があります。
これはinput.phpファイルです
<form name="input" action="<?php $_SERVER['PHP_SELF']?>" method="post">
Usernames: <input type="text" name="usernames" />
<input type="submit" value="Submit" name="submit" />
</form>
<?php
if(isset($_POST['submit'])) {
$link = mysql_connect('', '', '');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
$db_selected = mysql_select_db('', $link);
if (!$db_selected) {
die ('Can\'t use : ' . mysql_error());
}
$result = mysql_query("INSERT INTO users(user_name) VALUES('".$_POST['usernames']."')");
if (!$result) {
die('Invalid query: ' . mysql_error());
}
}
?>
これは results.php ファイルです
<script
type="text/javascript" src="jquery-1.7.1.min.js"></script>
<?php
$link = mysql_connect('localhost', 'root', '');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
$db_selected = mysql_select_db('test', $link);
if (!$db_selected) {
die ('Can\'t use test : ' . mysql_error());
}
$result = mysql_query("SELECT user_name FROM users");
if (!$result) {
die('Invalid query: ' . mysql_error());
}
$names = array();
while ($row = mysql_fetch_assoc($result)) {
foreach ($row as $key => $val) {
$names[][$key] = $val;
}
}
echo json_encode($names);
?>
<script type="text/javascript">
$.getJSON("http://localhost/test/results.php", function(json){
alert("JSON Data: " + json);
});
</script>
<div></div>
どのjqueryを配置するか、またはこれを適切に行っている場合でも、私は立ち往生しています。最終的な結果は、ページを更新せずに電子メールを受信する Gmail のようなものです。しかし、私のシステムは、ページを更新しなくても 5 秒ごとにデータベースからユーザー名を取得していました。私は getJSON メソッドについて読んだことがありますが、それについては完全に理解していないので、非常に詳細な説明が必要な場合があります。この目的を間違った方法で行っている場合は、私に知らせてください。これを行う方法の良い方法を教えてください。
PHPコードからエコーされたJSON文字列を除いて、ブラウザでこのURLを試してみました。
これは私のJSON文字列です
[{"user_name":"matt"},{"user_name":"matt"},{"user_name":"peter"},{"user_name":"jim"},{"user_name":"sam"} ]