みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

なぜ、この場面で、ループ関数が必要なのでしょうか!

プログラムレベルは下の下です。 
以下のHPはhtmlとphpプログラムのコラボレです。
 "表示"タグをクリックすれば、
 "Google" "Yahoo" " CBS News" "abc NEws"
のタグが出てきて、クリックすれば、ホームページが見れるという
 単純なHPです。
 そこで、分からに事があります。
sample6.htmlの中に"for"関数がありますが、ループ関数が使われています。
このプログラムのからくりを勉強中ですが、現在ループでつまづいています。_ _
 なぜ、この場面で、ループ関数が必要なのでしょうか!?
 以下プログラムです、宜しくお願いします。

 ファイル名:sample6.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>配列とJSON</title>
<script type="text/javascript" src="../lib/jquery-1.8.1.min.js"></script>
<script type="text/javascript">
$(function (){
$("#exe").click(hello);
});
function hello(){
$.get("sample6.php", {}, function(resp){
var json = eval(resp);
var tags = "";
for (var i = 0; i < json.length; i++) {
if(i==0){
tags +="<div>サーチ&ポータル</div>";
}else if(i==2){
tags +="<br/><div>USニュースサイト </div>";
}
tags += '<a href="' + json[i].url + ' "> ' + json[i].name + '</a><br/>';
}
$("#show").html(tags);
});
;}
</script>
</head>
<body>
<h2>配列、連想配列とJSON
<input type="button" id="exe" value="表示 "/><h2>
<p id="show"></p>
</body>
</html>

ファイル名:sample6.php

<?php
$arr[0]["name"] = "Google";
$arr[0]["url"] = "http://www.google.co.jp/";
$arr[1]["name"] ="Yahoo!";
$arr[1]["url"] = "http://www.yahoo.co.jp/";
$arr[2]["name"] = "CBS News";
$arr[2]["url"] = "http://www.cbsnews.com/";
$arr[3]["name"] ="abc News";
$arr[3]["url" ]= "http://abcnews.go.com/";
header("Content-Type: text/javascript; charset=utf-8");
echo json_encode($arr);
?>

投稿日時 - 2013-06-23 13:53:48

QNo.8146170

困ってます

質問者が選んだベストアンサー

多分、「配列」に慣れていないから疑問なんですかね?
配列の概念がわかればおのずとわかるはずです。

JSONで応答されたデータが配列に入っています。(JSONとかは今回は触れないでおきます。データの形です)
通常の変数には一つの値しか入れることができません。
それに対して、配列は複数のデータを格納することができます。
ただ、複数のデータが入っていますからそのまま展開することはできません。

そのため、ループを使って一つずつ配列からデータを取り出して出力しています。

投稿日時 - 2013-06-23 14:37:18

お礼

有り難うございます。
”一つずつ配列からデータを取り出して出力”
そうですね、質問したことで以下の教本内容が見えてきました。「”for文のインデックスiその要素
を先頭から1つずつ取り出し、その要素となっている連想配列の値は、「ulr」と「name」をキーとして取得して<a>タグ生成用に使用しています。またこの部分は、tag += '<a href="' + json[i]・・・」
以上です^^
 

投稿日時 - 2013-06-24 21:57:47

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問