php-如何创建新闻源(AJAX新闻源)
作者:互联网
我有一个信息系统,更具体地说是一个信息系统,即票务系统.信息系统将包含拥有无限或n个用户的帐户.我希望用户能够看到其他用户在新闻源中的操作或对内容的更改. (就像Facebook).我将使用PHP,MySQL和AJAX(或jQuery)实现新闻源.我将知道如何设置表和查询.
如何使用PHP和AJAX或jQuery提取内容并将其显示在新闻源中(以具有淡入淡出或滚动效果的Facebook新闻源样式显示).
我一直在寻找一个好的教程,但没有找到一个.如果可能的话,我想最好从头开始编写代码.
我仍然有一些问题:这是我的问题:
ajax.php
<?php require_once('../../Connections/f12_database_connect.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
mysql_select_db($database_f12_database_connect, $f12_database_connect);
$query_newsfeed_a = "SELECT * FROM newsfeed";
$newsfeed_a = mysql_query($query_newsfeed_a, $f12_database_connect) or die(mysql_error());
while($row_newsfeed_a = mysql_fetch_assoc($newsfeed_a))
{
echo("<div class='feedItem'>");
echo("<div class='title'>" . $feedItem['title'] . "</div>");
echo("<div class='body'>" . $feedItem['body'] . "</div>");
echo("</div>");
}
$totalRows_newsfeed_a = mysql_num_rows($newsfeed_a);
?>
<?php
mysql_free_result($newsfeed_a);
?>
feed.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
<script>
function refreshNews()
{
$("#news").load("ajax.php")
}
</script>
</head>
<body>
<div id="news"></div>
</body>
</html>
我究竟做错了什么?
解决方法:
如果您想从头开始编写代码,则基本过程是创建一个PHP脚本来收集数据并将其发送回AJAX请求.通常,我创建一个单独的PHP文件来处理所需的任何操作.
您的PHP脚本正常输出的所有内容都将发送回AJAX请求.因此,任何HTML标记,任何echo / print语句. header()之类的东西也会创建输出,只是一个警告.
根据页面的设计,您可以使用PHP创建HTML,然后根据需要使用jQuery将html放入页面中.另一个选择是使用PHP的json_encode()并将所有数据作为JSON发送回去,并构建HTML结构客户端.
如果每个提要项都具有相同的基本结构,则像在任何常规页面中一样,在PHP中创建HTML服务器端可能是最容易的.您只需要供稿的HTML代码段即可.
最简单的方法是jQuery.load()
http://api.jquery.com/load/
在HTML页面内:
<script>
function refreshNews()
{
$("#news").load("path/to/ajax.php")
}
</script>
<div id="news"></div>
在PHP中:
$sql = "SQL TO GET NEWS FEED";
$result = mysql_query($sql);
while($feedItem = mysql_fetch_assoc($result))
{
echo("<div class='feedItem'>");
echo("<div class='title'>" . $feedItem['title'] . "</div>");
echo("<div class='body'>" . $feedItem['body'] . "</div>");
echo("</div>");
}
然后,您可以从另一个事件(刷新按钮,定时事件等)中调用refreshNews().
显然,您的html和数据结构可能有所不同.只要确保这是此PHP文件输出的唯一内容即可.这包括标签之外的所有内容.
有更有效的方法来执行此操作,此脚本实际上将在每次调用refreshNews()时重新加载新闻项的整个列表.目前,这是使其工作最简单的方法之一,因此请尝试一下,如有需要,可以使用更有效的方法.
标签:ajax,news-feed,mysql,php,jquery 来源: https://codeday.me/bug/20191102/1987934.html