3つの画像が画面に表示され、ユーザーが単語に一致する画像をクリックする必要があるWebゲームを作成しています(これも画面に表示されます)
これまでのところ、画像と単語(データベースから入力)のJavaScript配列を作成し、配列から3つの別々のdivで画面上の3つのランダムな画像を印刷することができました。
現時点では、画面に印刷されたランダムな画像の1つに「属する」3つの画像と同時に単語を印刷するのに本当に苦労しています。
これが私の現在のコードです:-
<script>
var items = [
<?php
$con = mysql_connect("localhost","*****","******");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("learning_game", $con);
$result = mysql_query("SELECT * FROM data");
$first = true;
while ($row = mysql_fetch_array($result)) {
if (!$first) {
echo ",";
}
$first = false;
echo "{name:'" . $row['word'] . "',image:'" . $row['image'] ."'}";
}
mysql_close($con);
?>
];
for (var i = 0; i < items.length; i += 1) {
}
document.write("<br /> <br /> <br />");
console.log(items);
top.items = items;
var images = new Array();
var list = document.getElementsByTagName('div')[0];
for(i = 0; i < 3; i++) {
// Choose a random item and remove it from the array
var item = items.splice(Math.floor(Math.random() * items.length), 1)[0];
// Create the image element and set its src attribute
images[i] = document.createElement('img');
images[i].src = item.image;
// Add it to your container element
}
document.getElementById("one").appendChild(images[0]);
document.getElementById("two").appendChild(images[1]);
document.getElementById("three").appendChild(images[2]);
</script>
全部で4つのdiv、画像ごとに1つのdiv、および画像の1つにリンク/属する単語の最後のdivが必要です。
JavaScript配列は次のようになります:-
var items = [
{name:'Coch',image:'upload/coch.png'}, {name:'Glas',image:'upload/glas.png'},
{name:'Melyn',image:'upload/melyn.png'},{name:'Ci',image:'upload/dog.jpg'},
{name:'Cath',image:'upload/cath.jpg'},{name:'Gwyrdd',image:'upload/gwyrdd.png'},
{name:'Un',image:'upload/un.jpg'},{name:'Dau',image:'upload/dau.jpg'},
{name:'Tri',image:'upload/tri.jpg'},{name:'Bochdew',image:'upload/bochdew.jpg'},
{name:'Piws',image:'upload/piws.png'} ];
名前は「単語」です。imageは、ファイルシステム内の画像へのリンクです。
どんな助けでも素晴らしいでしょう、事前にありがとう。