-3

私はJavaScriptが初めてで、これを理解するのに助けが必要です.

選択してオプションを指定する 3 つのメニューがあり、選択したメニューごとに 1 行のデータが表示されます。各行 (つまり、3 つの選択肢の場合は 3 行) で、別の選択メニューを使用して、その製品のプロバイダーを選択できます。デフォルトのプロバイダーを選択し、行の他のメニューを変更するという別の選択を作成しました。私が抱えている問題は、オプションを選択すると関数が呼び出されるため、それらがすべて同じ ID を持っていることです。すべての選択をループして、それらの選択から id=x 選択オプションを変更しようとしましたが、その ID で見つかった最初の選択に対してのみ機能します

echo" function pickprovider($name, $idname){ \n";

echo" <select name='$name' id='idname'> \n";
echo" <option>1stprovider </option> \n";
echo"  <option>2ndprovider </option>\n";
echo " </select>\n";
echo" }\n";

echo" function defaultprovider($name, $idname) {\n";
echo" <select name='$name' id='idname' onchange='changeDflt(this);'> \n";
echo " <option>1stprovider </option> \n";
echo " <option>2ndprovider </option> \n";
echo "</select>\n";
echo" }\n";

 echo "<script type='text/javascript'>\n";
 echo "function ChangeDflt(list) { \n";
 echo "var x = list.options[list.selectedIndex].text;\n";
 echo "var allSelects = document.getElementsByTagName('select');\n";
 echo "for (var i = 0; i < allSelects.length; i++) { \n";
 ....
 change selected options for selects 
 echo "}\n";
 echo "}\n";
 echo "</script<\n";

関数が呼び出されるたびに一意の ID を作成するように関数を変更する方法がわかりません。....ページ内のすべての選択要素を取得するときに「div」タグを使用できますか?

4

1 に答える 1