<script>
; (function ($) {
var box = document.getElementById("bm_content");
var l1 = document.getElementById("tb1");
var l2 = document.getElementById("tb2");
autoScroll();
function autoScroll() {
var product = RenderList();
l1.innerHTML = product;
if (l1.offsetHeight > box.offsetHeight) {
l2.innerHTML = l1.innerHTML;//克隆list1的数据,使得list2和list1的数据一样
scrollMove = setInterval(scrollup, 30);//数值越大,滚动速度越慢
box.onmouseover = function () {
clearInterval(scrollMove)
}
}
}
function scrollup() {
//滚动条距离顶部的值恰好等于list1的高度时,达到滚动临界点,此时将让scrollTop=0,让list1回到初始位置,实现无缝滚动
if (box.scrollTop >= l1.offsetHeight) {
box.scrollTop = 0;
} else {
box.scrollTop++;
}
}
//鼠标离开时,滚动继续
box.onmouseout = function () {
scrollMove = setInterval(scrollup, 30);
}
function RenderList() {
var str = '';
for (var i = 0; i < 20; i++) {
var a =i+1;
str += '<tr>';
str += '<td class="ellipsis">';
str += '<img src="skin/images/portrait_default.png"/>';
str += '<span class="center" title="张三' + a + '" style="margin-left: 10px;">张三' + a + '</span>';
str += '</td>';
str += '<td class="ellipsis" title="' + a + '年级上海教育版同步课">' + a + '年级上海教育版同步课</td>';
str += '<td class="ellipsis" title="16点46分">16点46分</td>';
str += ' </tr>';
}
return str;
}
})(jQuery)
</script>
;(function($) { var box = document.getElementById("bm_content"); var l1 = document.getElementById("tb1"); var l2 = document.getElementById("tb2"); autoScroll(); function autoScroll() { RenderList(function(product) { l1.innerHTML = product; if (l1.offsetHeight > box.offsetHeight) { l2.innerHTML = l1.innerHTML; //克隆list1的数据,使得list2和list1的数据一样 scrollMove = setInterval(scrollup, 30); //数值越大,滚动速度越慢 box.onmouseover = function() { clearInterval(scrollMove) } } }); } function scrollup() { //滚动条距离顶部的值恰好等于list1的高度时,达到滚动临界点,此时将让scrollTop=0,让list1回到初始位置,实现无缝滚动 if (box.scrollTop >= l1.offsetHeight) { box.scrollTop = 0; } else { box.scrollTop++; } } //鼠标离开时,滚动继续 box.onmouseout = function() { scrollMove = setInterval(scrollup, 30); } function RenderList(cbf) { $.ajax({ url: "url.php", type: "POST", dataType: "json", success: function(data) { var str = ''; for (var i = 0; i < data.length; i++) { str += '<tr>'; str += '<td class="ellipsis">'; str += '<img src="skin/images/portrait_default.png"/>'; str += '<span class="center" title="' + data[i].name + '" style="margin-left: 10px;">' + data[i].name + '</span>'; str += '</td>'; str += '<td class="ellipsis" title="' + data[i].name + '年级上海教育版同步课">' + data[i].name + '年级上海教育版同步课</td>'; str += '<td class="ellipsis" title="'+ data[i].time +'">'+ data[i].time +'</td>'; str += ' </tr>'; } cbf(str); } }); } 然后让url.php输出这样json格式 [ {"name":"aa","time":"16点46分"}, {"name":"bb","time":"18点43分"}, {"name":"cc","time":"12点39分"}, {"name":"dd","time":"19点33分"} ]
我这个数据出来的是这样的{0:“aa”,"name":"aa",1:"16点46分","time":"16点46分"}
我把它变成对象 var obj=eval("("+data+")");
但是好像没反应
function RenderList(cbf) {
$.ajax({
url: "action/do.php?<?php echo key::GetEncrypt("buyspace.php") ?>",
type: "POST",
dataType: "json",
success: function(data) {
var obj=eval("("+data+")");
var str = '';
for (var i = 0; i < data.length; i++) {
str += '<tr>';
str += '<td class="ellipsis">';
str += '<img src="skin/images/portrait_default.png"/>';
str += '<span class="center" title="' + obj.name + '" style="margin-left: 10px;">' + obj.name + '</span>';
str += '</td>';
str += '<td class="ellipsis" title="' + obj.name + '年级上海教育版同步课">' + obj.name+ '年级上海教育版同步课</td>';
str += '<td class="ellipsis" title="'+ obj.name +'">'+ obj.name +'</td>';
str += ' </tr>';
}
cbf(str);
}
});
}
php输出的必须是这样的json格式
[
{"name":"aa","time":"16点46分"},
{"name":"bb","time":"18点43分"},
{"name":"cc","time":"12点39分"},
{"name":"dd","time":"19点33分"}
]
})(jQuery) 是不是掉了这个
对,要加上
好像还是没用
cbf 是什么?
是传的参数吗
已经设置 dataType: "json", 了
就不要用 var obj=eval("("+data+")");了
cbf是回调函数
数据那边 返回的结果集 不是你这样的模型
echo json_encode($css,JSON_UNESCAPED_UNICODE);
我把它 结果集合 转化成JSON后{0:“aa”,"name":"aa",1:"16点46分","time":"16点46分"}
怎样让它变成你那样的数据类型?
你这个json太奇怪了,
用类似这样的
$jarr = array(); while ($row = mysqli_fetch_array($result,MYSQL_ASSOC)) { $obj = array(); $obj["name"] = $row["name"]; $obj["time"] = $row["time"]; $jarr[] = $obj; } echo json_encode($jarr);//将数组进行json编码
$(document).ready(function(){
$(".butn").click(function(){
var password = $("#wangwang").val();
$.post('action/do.php?<?php echo key::GetEncrypt("buyspace.php") ?>',
{pwd:password},function(data) {
var obj=eval("("+data+")");
$("#spId1").text(obj.name);
})
})
})
</script>
我这样可以得到数据
但是你那样好像不行
你的只有一行数据,这个代码是要多行数据
恩
好像还是不行 是不是要用轮询啊
把你php的代码发一下
<?php
@header('Content-type: text/html;charset=utf-8');
require_once "../includes/conn.php";
require("../includes/config_global.php");
require_once "../includes/classes/biz.class.php";
$db = new DB();//查找全部数据
$db->Connect(DBHOST,DBUSER,DBPW,DBNAME);
$ro="select * from phmessage where to_days(now()) = to_days(time) ";//查找是否存在数据库里
mysql_query("set names utf8;");
$result=$db->query( $ro);
//$res1=mysql_num_rows($result);
//if($res1>0){
$jarr = array();
while ($row = mysqli_fetch_array($result,MYSQL_ASSOC)) {
$obj = array();
$obj["name"] = $row["name"];
$obj["time"] = $row["time"];
$jarr[] = $obj;
}
echo json_encode($jarr);//将数组进行json编码
//}else{
//exit('fail');
//}
?>
<script>
;(function($) {
var box = document.getElementById("bm_content");
var l1 = document.getElementById("tb1");
var l2 = document.getElementById("tb2");
autoScroll();
function autoScroll() {
RenderList(function(product) {
l1.innerHTML = product;
if (l1.offsetHeight > box.offsetHeight) {
l2.innerHTML = l1.innerHTML; //克隆list1的数据,使得list2和list1的数据一样
scrollMove = setInterval(scrollup, 30); //数值越大,滚动速度越慢
box.onmouseover = function() {
clearInterval(scrollMove)
}
}
});
}
function scrollup() {
//滚动条距离顶部的值恰好等于list1的高度时,达到滚动临界点,此时将让scrollTop=0,让list1回到初始位置,实现无缝滚动
if (box.scrollTop >= l1.offsetHeight) {
box.scrollTop = 0;
} else {
box.scrollTop++;
}
}
//鼠标离开时,滚动继续
box.onmouseout = function() {
scrollMove = setInterval(scrollup, 30);
}
function RenderList(cbf) {
$.ajax({
url: "action/do.php?<?php echo key::GetEncrypt("url.php") ?>",
type: "POST",
dataType: "json",
success: function(data) {
var str = '';
for (var i = 0; i < data.length; i++) {
str += '<tr>';
str += '<td class="ellipsis">';
str += '<img src="skin/images/portrait_default.png"/>';
str += '<span class="center" title="' + data[i].name + '" style="margin-left: 10px;">' + data[i].name + '</span>';
str += '</td>';
str += '<td class="ellipsis" title="' + data[i].name + '年级上海教育版同步课">' + data[i].name + '年级上海教育版同步课</td>';
str += '<td class="ellipsis" title="'+ data[i].time +'">'+ data[i].time +'</td>';
str += ' </tr>';
}
cbf(str);
}
});
}
})(jQuery)
</script>
<div id="bm_content" class="bm_content">
<table class="table table-condensed ">
<thead style="position: fixed; ">
<tr>
<th style=" width: 60px; text-align: right;">用户</th>
<th style="width: 110px; text-align: center;">验证旺旺号</th>
<th style=" width: 70px; padding-right: 30px;">时间</th>
</tr>
</thead>
<tbody id="tb1"></tbody>
<tbody id="tb2"></tbody>
</table>
</div>
这个function RenderList(cbf) 函数有没有被触发呢
for (var i = 0; i < data.length; i++) {
这里循环肯定会报错的
发错了 while ($row = $db->fetch_one_array($ro);) { 应该是这里会报错
你数据库中的字段名是 name和time吗
不只哦 还有很多字段
我单独拿出你的AJAX ,好像没有什么反应,是不是AJAX有错误
while($row = $result->fetch_assoc()) {
你按F12键打开浏览器的控制台看看Network栏目中php输出的是否正确
mysqli _ fetch _ array()要求参数1是mysqli _ result,资源已给定
对非对象上的成员函数fetch_assoc()的调用
得到了数据[{"name":"你是一个幸运的人77","time":"2020-07-02 17:31:33"},{"name":"曹阿濮","time":"2020-07-02 17:32:36"}]
但是广告栏 不能滚动了
数据行数太少了,这个代码要数据超过div的范围才会滚动
if (l1.offsetHeight > box.offsetHeight) {