【发布时间】:2012-08-08 00:04:33
【问题描述】:
我在网上某处找到的这段代码运行良好,这正是我想要完成的:
$(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。有什么想法吗?
日志结果:
【问题讨论】:
-
请不要使用
mysql_*函数编写新代码。它们不再维护,社区已经开始deprecation process。看到red box?相反,您应该了解prepared statements 并使用PDO 或MySQLi。如果你不能决定哪一个,this article 会帮助你。如果你选择 PDO,here is good tutorial. -
哦,我不知道mysql_要搬出去了。
-
allaOrter[0]未定义 - 为什么会这样?在 JavaScript 中执行 console.log(allaOrter) 并在 Chrome/Firefox 等中检查开发者控制台。它说什么? -
@AndersHolmström 第一个未定义,因为没有索引为 0 的“ortnamn”,所以第一个为空
-
@anders:因为 JS 数组从 0 开始,但是 sql id 一般从 1 开始。