这就是我想要的,在名为 input.php 的 PHP 页面上,用户通过 html 表单提交用户名。这将存储到 MYSQL 数据库中。有一个名为 results.php 的页面查询 MYSQL 数据库中的所有用户名。
我需要发生的是,每隔 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 方法的信息,但我完全不了解它,所以我可能需要一些非常深入的解释。如果我以错误的方式实现这一目标,请告诉我并告知我如何实现这一目标的良好做法。
我在我的浏览器中尝试这个 url,除了来自 php 代码的回显 JSON 字符串之外没有任何结果。
这是我的 JSON 字符串
[{"user_name":"matt"},{"user_name":"matt"},{"user_name":"peter"},{"user_name":"jim"},{"user_name":"sam"} ]