免責事項:私は、JQuery、PHP、または MySQL の経験がほとんどない iOS 開発者です。
これが取り引きです:私はフィルム情報(、、、など)を含むMySQLデータベースを持ってFilmTitle
いFilmGenre
ますFilmDirector
。
私の目標は次のとおりです。
- データベースから映画のタイトルだけを取得し、
Array
.
私はこれにPHPを使用しており、正常に動作しています。 - この PHP
Array
を JavaScript に渡しますArray
。
これも機能します。 - 最後に、JavaScript を使用して
Array
、ドロップダウン メニューに を使用して内容を入力しcreateElement()
ます。
これは機能しません。
私はあらゆる種類のばかげたものを手に入れています.いくつかのdocument.write()
コマンドは機能しており、いくつかは機能していません。ドロップダウン メニューが表示されません。等
最初の質問:これはそもそも良い戦略ですか? データベース内の映画の数が変化するにつれて、ドロップダウン メニューを適切に更新する唯一の方法は、私が説明したことを行うことだと考えました。
2 番目の質問:これはすべて、HTML ファイルではなく、PHP ファイルにあるはずですよね? しかし、PHP で JavaScript 関数を実行することさえできるのでしょうか? それとも、これを機能させるために何か特別なことをする必要がありますか?
コード
<?php
echo "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>";
echo "<allFilms>";
$link = mysql_connect(" . . . . ");
$query = "select * from FilmsSmallTable";
$result = mysql_query($query);
// Declare array variable:
$allFilmTitles = array();
while($row = mysql_fetch_assoc($result))
{
echo "<film>";
echo "<FilmName>";
echo $row['FilmTitle'];
array_push($allFilmTitles, $row["FilmTitle"]);
echo "</FilmName>";
echo "</film>";
}
// Print array out to verify:
echo "Here is the array's full contents:<br/>";
print_r ($allFilmTitles);
//convert array to string using ":#:" as separator
$stringedArray = implode(":#:",$allFilmTitles);
echo "<br/><br/>";
echo "PHP Array converted to a PHP String (the 'stringedArray' variable) = <br/>";
print_r ($stringedArray);
echo "</allFilms>";
?>
<html>
<head>
<title>PHP & JS</title>
<script type="text/javascript">
function showArray() {
//Convert PHP string to JavaScript string
var JSArrayString = "<? print $stringedArray; ?>";
//Create JavaScript array
var JSarray = new Array();
var x;
//Fill JavaScript array from the converted string
JSarray = JSArrayString.split(":#:");
// And sort it:
JSarray.sort();
//document.write("JSarray's length = ", JSarray.length);
document.write("JSarray contains: ", JSarray);
// reset the Form's drop-down menu to contain no elements:
FilmsDropDownMenu.length = 0;
for (counter = 0; counter < JSarray.length; counter++) {
document.write("Counter = " + counter + "<br/>");
var newMenuItem=document.createElement("option");
newMenuItem.text = JSarray[counter];
try {
//currentMenu.add(newMenuItem, null); // standards compliant
FilmsDropDownMenu.add(newMenuItem, null); // standards compliant
}
catch(ex) {
//currentMenu.add(newMenuItem); // IE only
FilmsDropDownMenu.add(newMenuItem);
}
}
function displayUsersChoice() {
// Grab the INDEX number of the choice the user selected from that menu:
var tempMenu = document.getElementById("FilmsDropDownMenu").selectedIndex;
choice = tempMenu[choiceSelected].value;
alert ("You chose: " + choice);
}
</script>
</head>
<body onload="showArray()">
Hello!
<form id="myForm">
<select id="FilmsDropDownMenu" onChange="displayUsersChoice()">
<option>==Choose Film to Edit:==</option>
<option>Star Wars</option>
<option>Raiders</option>
<option>2001</option>
</select>
<input type="submit" value="Display Array" onclick="showArray()" />
</form>
<br/>
</body>
</html>