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"]
*/
?>
これを Cookieに入れるつもり$jsonstring
です。これにより、複数の異なるページで参照できるようになり、今後クエリを作成する手間が省けます。https://github.com/carhartl/jquery-cookieの 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 の値を検索するにはどうすればよいでしょうか。または、誰かがより良い解決策をアドバイスできますか?