所以@SOF
我一直在努力使我的学校成绩,成绩,预计成绩等网页具有自动更新功能,以便在通过使用jquery
和来获得新数据时刷新页面上的数据,并且ajax
“查看”。
我的主要问题是我无法正常使用任何形式的Ajax刷新/加载,我可以将输出生成为json或单个html文件,出于我的目的,我认为json会更好,但我不确定。
我的网页在左上角有一个导航助手,它是一个下拉菜单,该菜单通过“搜索”找到的列表填充<a id="CLASS1" optionname="CLASS 1"></a>
,可以在表中找到该列表,但是如果需要,我可以在表外填充该菜单。需要。
我非常希望能够使我们在这个例子中一共有8种选择,包括必须修改下拉- Select Class -
,Class 1
,Class 2
,Class 3
,Class 4
,Class 5
, All Updating
, All Non-Updating
Gaby aka G. Petrioli
提供了一个示例,该示例与我所需要的非常接近,但是该成员从未回来过:http://jsfiddle.net/u7UkS/4/http://pastebin.com/raw.php?i=0PNQGMmn
http://pastebin.com/raw.php?i=4H5GHv15
http://pastebin.com/raw.php?i=xk860dBN
单一课程页面-http://pastebin.com/raw.php?i=HvpaVhG6
http://jsfiddle.net/kHtuQ/show
以前的帖子,某些成员提供了一些ajax示例:Anchor Cycler /
Dropdown,用于定期导入学校课程数据
下面的示例大致显示每个“班级”中的内容 注意班级=学校班级
<table id="gradient-style">
<tbody>
<thead>
<tr>
<th scope="col"><a id="CLASS1" optionname="CLASS 1"></a>Class</th>
</tr>
</thead>
<tr><td>Class 1</td></tr>
</tbody>
<tfoot>
<tr>
<th class="alt" colspan="34" scope="col"><a id="KEY"></a><img class="headimager" src="http://placehold.it/250x50"/></th>
</tr>
<tr>
<td colspan="34"><em><b>Data</b> - Test</em></td>
</tr>
</tfoot>
</table>
如果有人可以帮助您,将不胜感激,如果您能够发表评论,请这样做,以便我继续学习。
谢谢
丹尼斯S
使用ajax非常简单,
我建议您为此使用HTML数据类型,因为您在容器中有一个表,
这里有一个api文档=>
http://api.jquery.com/jQuery.ajax/
这是我的小提琴为您 量身定做=>
http://jsfiddle.net/sijav/kHtuQ/19/或http://fiddle.jshell.net/sijav/kHtuQ/19/show/
我已经将ajax代码放在名为updateClass(url )哪个url代表要获取的url,它将在容器中附加要获取的HTML =>
function updateClass(url){
$.ajax({
url: url,
dataType: "HTML",
error: function(msg){
alert(msg.statusText);
return msg;
},
success: function(html){
$("#container").html(html);
}
});
}
我添加了一个refreshClass,它刷新了整个容器类,=>
function refreshClass(){
updateClass("http://fiddle.jshell.net/sijav/mQB5E/5/show/"); //update the class
}
并在更改选择器上更改为以下代码=>
var classUpdateI; //stands for our interval updating class
$(".class-selector").on("change",function(){
if (classUpdateI!=null)clearInterval(classUpdateI); //If the selector changed clear the interval so the container won't be update on it's own
if(this.value == "")
return; // if the value is null don't do anything
else if(this.value == "allclassnup"){
refreshClass(); //if the value is allclassnup which is stands for All Non-Updating just refresh the whole class
}
else if(this.value == "allclassup"){
refreshClass(); //if the value is allclassup which is stands for All Updating refresh the whole class and set an interval for thirty second (look for 30*1000)
classUpdateI = setInterval(refreshClass,30*1000);
}
else //else then it's a simple class value, just simply update the current class
updateClass(this.value);
})
希望能对您有所帮助;)
编辑 :编辑后可以获取大表(而不生成表!),所有更新将在30秒的间隔内更新。另一个
编辑 :信不信由你,我已经解决了您所有的问题!
工作区:http :
//jsfiddle.net/sijav/kHtuQ/39/或http://fiddle.jshell.net/sijav/kHtuQ/39/show/
1,这是因为它仅适用于最后一个html,对于新的,我们应该再做一次!因此将整个$('tr').click()
函数放入另一个函数中,并在必要时调用它。
-您想让它充分发挥作用吗?这有点复杂,但是可以在代码中进行一些更改!那我要告诉你,好吧,这里是我们应该把阶级选择更改cookie的当前类的algurithm然后每当我们刷新,我们可以阅读或重新加载页面,并把必要的选定类等等......
但在这里进行代码设计时,我确实使其工作了,
首先我创建了一个全局变量FirstTimeInit = true;
,以确保我们是否第一次加载页面,其次我将for循环放在页面加载时突出显示。一个叫做的函数selectSelectedClass
,为什么呢?因为我们需要多次调用它,因此第三次添加了一些if语句,以确保我们可以读取cookie,然后更改突出显示的内容和当前类,这是代码:
if(readCookie("CurrentClass")) //if we can read coockie
$(".class-selector").val(readCookie("CurrentClass")).change(); //change it's value to current cookie and trigger the change function
else{ // else
selectSelectedClass(); //select those which was highlighted before
trClick(); //make things clickable
FirstTimeInit = false; //and turn of the first time init
}
在选择器值更改上添加一个创建cookie更改=> createCookie("CurrentClass",$(".class- selector").val(),1);
,最后更改将Ajax成功获取到此的成功
success: function(html){
$("#container").html(html + '<a id="KEY"></a>'); //the html container changer with adding extra id , I'll explain it later it's for your second question
if(FirstTimeInit){ //if it is First Time then
selectSelectedClass(); //highlight which was highlighted after put the correct html
FirstTimeInit = false; // turn of the first time init
}
else //else
for (var i=0;i<($("table").children().length);i++){
if(readCookie(i))
eraseCookie(i); //erase every cookie that has been before because the table is now changed and we're going on another table so old cookie won't matter
}
trClick(); //make things selectable!
}
为了使它没有错误,我还更改了refreshClass,以便在所选类为all或为null时将firstinit设置为firstinit,因为那样我们就拥有所有类,并且需要那些cookie!所以这是代码:
function refreshClass(){
if(readCookie("CurrentClass")=="allclassnup"||readCookie("CurrentClass")=="allclassup"||readCookie("CurrentClass")==null)
FirstTimeInit = true;
updateClass("http://fiddle.jshell.net/sijav/mQB5E/5/show/");
}
2 <a id="TOP"></a>
必须在容器之前,<a id="KEY"></a>
必须在将html放在容器上之后在容器的末尾生成。所以$("#container").html(html + '<a id="KEY"></a>');
3下一个和上一个按钮是为非ajax先前设计而设计的,现在需要其他解决方案!例如看这些简单的代码
$("#PreviousClass").click(function(){//on prev click
$(".class-selector").val($(".class-selector option:selected").prev().val()).change() //change the value to the prev on and trigger the change
});
$("#NextClass").click(function () {//on next click
$(".class-selector").val($(".class-selector option:selected").next().val()).change() //change the value to the prev on and trigger the change
});
4是可能您应该将密码更改为以下密码,然后再进行=>
currentClass=0;
$("a.TOPJS").click(function () {
if(currentClass>0){
currentClass--
scrollToAnchor('CLASS'+currentClass);
}
});
$("a.KEYJS").click(function () {
if($("a[id='CLASS" + currentClass + "']")[0]!=undefined){
currentClass++
scrollToAnchor('CLASS'+currentClass);
}
else
scrollToAnchor('CLASSMAX');
});
上帝的运气
另一个请求编辑:( 希望这将是最后一个!)
工作小提琴 :http :
//jsfiddle.net/sijav/kHtuQ/42/或http://fiddle.jshell.net/sijav/kHtuQ/42/show/
好吧因为您不喜欢将刷新类更改为其中的更新类,所以我删除了该类,更好的是,我添加了一些代码在cookie中添加类,因为cookie不是树,因此存在某种条件,该类是从类选择器的最后一个字符读取的,因此请确保在最后一个字符处有类号,例如->
Class number ***5***
将为类选择器读取数字5!
编辑 :优化类的下一个和上一个,请参见http://jsfiddle.net/sijav/kHtuQ/46/
编辑 :根据要求的注释,
这就是我要告诉您的内容,有时该演示在jsfiddle.net上显示,有时在fiddle.jshell.net上显示,这些是不同的域,并且您无法从不同的域获取html。
1)您只能将函数放入Interval或仅创建另一个函数并按如下方式正确调用它=>
classUpdateI = setInterval(function(){updateClass(this.value,parseInt(a.charAt(a.length-1),10));},30*1000);
2)失踪?!我找不到您的第二个问题!
3)好吧,… trclick需要将…更改为=>
function trClick(tIndex){ //tIndex would be classnumber from now on
if (tIndex == -1){ //if it is all updating or all non updating
$("tr").click(function(){ //do the previous do
$(this).toggleClass('selected').siblings().removeClass('selected');
if(readCookie($(this).parent().index("tbody"))){
if(readCookie($(this).parent().index("tbody"))==$(this).index())
eraseCookie($(this).parent().index("tbody"));
else{
eraseCookie($(this).parent().index("tbody"));
createCookie($(this).parent().index("tbody"),$(this).index(),1);
}
}
else
createCookie($(this).parent().index("tbody"),$(this).index(),1);
});
}
else{ //else
$("tr").click(function(){ //on click
$(this).toggleClass('selected').siblings().removeClass('selected');//do the toggle like before
if(readCookie(tIndex)){ //if you can read the CLASS cookie, not the current index of table because our table has only one row
if(readCookie(tIndex)==$(this).index()) //as before if we selecting it again
eraseCookie(tIndex); //just erase the cookie
else{ //else
eraseCookie(tIndex); //select the new one
createCookie(tIndex,$(this).index(),1);
}
}
else
createCookie(tIndex,$(this).index(),1); //else if we can't read it, just make it!
});
}
}
当我们成功调用Ajax时,应使用classNumber => trClick(classNumber);
上次工作的提琴进行 调用 : http
:
//jsfiddle.net/sijav/kHtuQ/53/或http://fiddle.jshell.net/sijav/kHtuQ/53
/表演/
祝好运
问题内容: 首先,我是Django的新手,几乎完全不熟悉AJAX和jQuery。 我在本地开发。 因此,我正在尝试实现一个HTML表,该表在AJAX的帮助下每X秒钟动态刷新一次(无需页面刷新),但是我似乎无法使我的代码正常工作。 (如果我有足够的代表,我可能会回答这个问题,或者从聊天中寻求帮助,但我还没有那么高兴) 我一直在努力使它工作10多个小时,而我开始感到无助。我一直在疯狂地搜索网络,但是这
问题内容: 是否有人知道可以监视一个或多个本地文件的Firefox扩展,脚本或某种其他机制。当Firefox在文件中检测到(时间戳)更改时,将自动刷新或以其他方式更新其画布。 对于编辑CSS,理想的情况是仅重新加载CSS,而不是重新渲染完整的HTML。 实际上,仅通过外部文件,它就可以通过动态HTML / CSS编辑来实现与Firebug类似的行为。 问题答案: Live.js 从网站: 怎么样?
问题内容: 我有一个如下的json文件,我想使用更新值 update.json 我想编写一个PowerShell脚本,在其中 如何使用参数? 问题答案: 这是一种方法: 根据@FLGMwt和@mikemaccana,我改进了with,因为默认深度值为2,对于深度大于2的对象,尽管有对象,您仍会收到类信息。
问题内容: 我正在使用Python,并且有一个JSON文件,我想在其中更新与给定键相关的值。也就是说,我包含以下数据 并且我只想将与键相关的值从更改为,以便更新后的文件如下所示: 我该怎么做? 我尝试了以下操作,但没有成功(更改未保存到文件中): 问题答案: 您根本没有保存更改的数据。您必须先加载,然后修改,然后再保存。无法就地修改JSON文件。 您也可以这样做: 如果要确保安全,请首先将新数据写
问题内容: 如标题所述,我在应用程序中使用了休眠刷新模式机制。因此,当我更改休眠持久对象中的任何数据时,它会自动反映在数据库中。我不要这个 因此,我找到了使用FlushMode的解决方案。 所以这是我的实际问题: 最好使用冲洗模式代替?和 文档中此声明的含义是什么? 有时在执行查询之前会刷新会话,以确保查询从不返回过时状态。 http://docs.jboss.org/hibernate/orm/
问题内容: 您如何使用JavaScript(特别是jQuery)进行自动刷新? 我知道这种方法,但这真的是一个好习惯吗?有没有更好的方法? 问题答案: 另一个修改: 与此不同的是,ajax调用为1之后,它将等待10秒。因此,刷新之间的时间间隔实际上是10秒+ ajax调用的长度。这样做的好处是,如果您的服务器花费的时间超过10秒,则不会同时发生两个(最终很多)同时的AJAX调用。 另外,如果服务器