ケース1:何がうまくいかないのですか?
$phpObj=json_decode(file_get_contents($url),true);
上記のfile_get_contentsはjsonを返し、上記を使用してそれをphpオブジェクトに変換し、多次元配列である$ phpObj(特定の文字列を抽出するため)を解析し、$newObjなどのキー値の新しい配列を形成します。その後、json_encodeを使用してnewObjをjsonに変換します。
jQueryを使用して$newObjを解析し、それをhtmlにレンダリングします。
ケース2:私にとって何が効果的ですか?
jsonを解析する代わりに、サーバーにXMLを返すようにし、上記のようにjson_decodeの代わりに次を使用します。
$xmlDoc->load($url);
XMLを解析して$newObj(キーと値のペア)を作成し、上記と同じようにjQueryを使用して、ブラウザーでレコードセットをレンダリングします。完全に正常に動作します。
もちろん、parsiong JSONとXML以外のケース1と2の唯一の違いは、jQueryがレンダリングのコールバック関数で受け取る値です。
ケース1の場合(機能しません):
{"1002":"I am Yavar","1003":"I work for XYZ","1004":"California is in US"}
ケース2(作品)の場合:
[{"1000":"California is in US","xmlNode":{}},{"1001":"I work for XYZ","xmlNode":{}}]
ケース1で何が問題になっているのか、誰かが私を助けてくれるといいのですが、ケース2で角かっこ([])とxmlNodeが機能するために本当に必要ですか?
ここで本当に必要な場合は、私のjQuery関数です。
<script>
$(document).ready( function() {
$('#term').keyup( function() {
$.get('search_json.php?q='+escape($('#term').val()), function(data) {
html = '<table id="results">';
$.each( data, function( ind, ep ) {
html += '<tr><td class="document"><b>'+ind.key+'</b> ';
html += +ep.value+'</td></tr>';
} );
html += '</html>';
$('#results').replaceWith( html );
} );
} );
} );
</script>