php数组中的inArray jQuery,找到项目索引

我在网上某个地方找到的这段代码可以正常工作,这是我想要实现的目标:

$(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);

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: &lt;span id=&quot...
jQuery 添加水印 &lt;script src=&quot;../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...