我在网上某个地方找到的这段代码可以正常工作,这是我想要实现的目标:
$(document).ready(function(){
var arrData = [ "j", "Q", "u", "e","r","y" ];
alert(jQuery.inArray("Q", arrData));
});
但是,我有一个来自PHP / MysqL循环的数组,我这样输出并保存:
$query = MysqL_query("SELECT * FROM geo_orter");
while(($row = MysqL_fetch_assoc($query))){
$i = $row['ort_id'];
$result[$i] = $row['ortnamn'];
};
$allaOrterjson=json_encode($result);
然后,我继续执行此操作,该方法有效:
var allaOrter=<?PHP echo $allaOrterjson ?>;
document.write(allaOrter[0] + allaOrter[1] + allaOrter[2]);
给我
undefinedAborremålaAbbjörnahall
这是问题所在:
我试过了
$(document).ready(function(){
alert(jQuery.inArray("Aborremåla", allaOrter));
});
但结果为“ -1”(未找到).
我试图找出数组中某项的索引nr.有任何想法吗?
记录结果:
解决方法:
这里的问题是json_encode($result);创建一个JSON对象,而不是一个数组.因此,jQuery.inArray无法正常工作.
而是构建一个JavaScript数组:[“ value”,“ value”,“ value”等…];
或对对象执行以下操作:
var locations = {
"Abårremöla" : 1,
"Stuff" : 2,
"Ludvika" : 1549
};
var query = "Ludvika";
if(query in locations) {
var id = locations[query];
alert(id); //displays 1549
}
为此,您必须以其他方式在PHP中构建对象-因此,以位置名称作为索引器和id作为值的PHP数组:
$query = MysqL_query("SELECT ort_id, ortnamn FROM geo_orter");
while(($row = MysqL_fetch_assoc($query))){
$index = $row['ortnamn']; //<- note!
$result[$i] = $row['ort_id']; //<- note!
};
$allaOrterjson=json_encode($result);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。