私はPHPの生成ページでいくつかの問題を抱えています。ここでは、variuosフォームのフィールドは動的ID(db接続から取得)によって識別されます。 HTML部分では、いくつかのフォームフィールドを非表示にして(スタイル= "display:none;")、ユーザーが選択リストから特定のオプションを選択したときに表示します。JavaScriptがGetElementByID(VARIABLE_NAME)の問題を取得する
ユーザーがフォームのリストを持っていて、ID番号11のものをphpで選択すると、選択IDは「SELECT11」(「SELEC79」、「SELECT118」などがあります)です。 phpによって与えられた同じID#はもちろん、関連する隠しフィールドに影響します。関連するフィールドに目的の効果を適用するために、IDはJS関数に渡され、関数show_more(ID)が呼び出されます。私が表示したい
// html
<select id="SELECT11" onchange="show_more(11);">
<option selected value="">-- Choose a Puppy --</option>
<option value="CAT">CAT</option>
<option value="DOG">DOG</option>
// other options here...
</select>
隠しパーツ:
// HTML -> note the ID# 11 repeated in row ids
<tr id="tr_cats11" style="display:none;">
<td>
<select name="more_cats">
<option value="Persian">Persian</option>
<option value="Mainecoon">Maine coon</option>
</select>
</td>
</tr>
は、私の考えは、showアクションを管理するには、この方法でした:
// Javascript
function show_more(id) {
var SELECT_NAME = 'SELECT' + id; /* an alert(SELECT_NAME) correctly shows it! */
var choice = document.getElementById(SELECT_NAME).value; /* I cannot get this value!!! */
if(choice == 'CAT') {
var ROWCATS = 'tr_cats' + id;
var cats document.getElementById(ROWCATS).style;
cats.display = "table-row";
}
else if(choice == 'DOGS') {
/* similar code here */
} /* endif */
} /* end function */
今では私が最初のトラブルへのアクセスを取得するようです選択された値。私は、 "SELECT11"オプション値を取得しようとする命令の後にコントロールを変更しようとしましたが、警告は表示されません。しかし、変数select( 'SELECT' + id)の名前を示す以前の警告は変数を正しく示しています。
可変フィールド名をGetElementByIDに渡して、変数に目的の行の名前を格納すると値を取得できないようです。
事前に:(
Thansk
'GetElementById'ではなく' getElementById'。 – Andy
ここで間違って書いたばかりですが、ページ内のコードは小文字の小文字で正確です –
コードは機能していませんが、実際には何が起こっていますか?ブラウザのコンソールにエラーが表示されますか?例えば。 ifブロックの2行目に構文エラーがあります。 – nnnnnn