我需要一种简单的方法来使用 javascript 搜索我的 Json 字符串。
这是创建我的 Json 字符串的 PHP:
<?php
$allnames = array();
$res = mysql_query("SELECT first,last FROM `tbl_names`");
while ($row = mysql_fetch_array($res)){
$allnames[$i++] = $row['first'].':'.$row['last'];
}
echo $jsonstring = json_encode($allnames);
/*
["john:smith","tony:stark","bruce:banner","clark:kent"]
*/
?>
我打算把它$jsonstring
放到一个 cookie 中,这样我就可以在几个不同的页面上引用它,这样我就不用再做任何未来的查询了。我正在使用来自以下网址的 jquery cookie 插件:https ://github.com/carhartl/jquery-cookie
<script type="text/javascript" src="jquery.cookie.js"></script>
<script language="javascript" type="text/javascript">
$(document).ready(function(){
$.cookie("allNames", JSON.stringify(<?=$jsonstring;?>))
});
</script>
到现在为止还挺好!cookie存在,数据保存,在浏览器中可以看到。
我现在对搜索该 cookie 的值很感兴趣,以查找这些名称中的任何一个。如果我找到一个,我将有选择执行,这取决于我的页面。
我想做的是从页面上的文本框中执行 onkeyup 事件:
<input type="text" name="lastname" id="lastname" />
<script language="javascript" type="text/javascript">
$(document).ready(function(){
$("#lastname").keyup(function() {
// search the "allNames" cookie value for lastname
var allNames = $.cookie("allNames"); // gets cookie
var lastname = $(this).val();
// this is not seeming to work:
if( allNames.text().search('stark') != -1){
alert("that name exists");
}else{
alert("name does not exist");
}
});
});
</script>
我确信这是一项简单的任务,我只是没有掌握。也许 json 也不是保存 cookie 数据的最佳方式。
但是我将如何搜索 cookie 的值?或者有人可以提出更好的解决方案吗?