我的脚本在firefox 5中工作,即8,但不是在ie7,opera 9.5,safari ..
应使用数据库查询检查每个复选框,是否需要激活
脚本:
$('.merkzettel').each(function(){
var name = $(this).attr("value");
var url = "istInMappe.php?id=" + session_id + "&bild=" + name;
$.getJSON(url,function(data){
checken (data.checked, data.number);
});
});
function checken (bool, number){
if (bool == "checked"){
var elem = "#img" + number;
$(elem).attr('checked','checked');
}
}
脚本中的答案(istInMappe.php?...)在opera中是正确的: { “检查”: “未登记”, “数字”: “1553”} 没有错误信息..
但是没有执行“checken”功能,也没有选中复选框,没有错误信息..
html /复选框(例如)
<input type="checkbox" id="img1566" class="merkzettel" name="merkzettel1566" value="img_1566.jpg"/>
我没有找到错误。有人有个主意吗? 非常感谢... 萃
我修改了脚本,现在一个请求查询存储在db中的checkbox-numbers,但我仍然遇到opera的问题,即7,safari等。
也许有另一种方式?
function checken (nummer){
var elem = "#img" + nummer;
$(elem).attr('checked',true);
}
function start(){
var url = "fileadmin/php/refreshCheckboxes.php?id=" + session_id;
$.get(url,function(data){
$.each(data.posts, function(i,data){
//alert (data.number);
checken (data.number);
});
});
}
$(".load").click(function()
{
start();
return false;
});
http://www.ruth-schuette.com/gesamtwerk/in-arbeit.html
我非常感谢任何想法,因为我已经好几天都在努力了
答案 0 :(得分:1)
你说JSON看起来像这样:
{"checked":"unchecked","number":"1553"}
但您的代码引用“nummer”,而不是“number”:
checken (data.checked, data.nummer);
几点说明:
您可以使用“.val()”获取<input>
的值:
var name = $(this).val(); // or just this.value
当您设置“radio”或“checkbox”输入的“checked”属性时,您可以使用布尔值,因为这就是浏览器无论如何都会解释该值:
$(elem).attr('checked', true);
编辑 - 我不知道为什么它在Chrome中不起作用。 HTTP请求似乎都发生了,响应看起来还不错,但永远不会调用成功处理程序。
我会提出这样的建议,即使它确实有效,但获取这些信息的速度非常慢。如果您能够弄清楚在准备页面时检查了什么,或者至少有一个返回整个地图的调用,那就更好了。制作所有这些HTTP请求需要一段时间。