0

先生たちの生活を少し楽にする最善の方法を見つけようとしています。

tlist sql クエリによって生成された選択フィールドとオプションのリストがあります。選択フィールド自体には、選択された選択オプションの ID に基づいて他のフィールド値 (クレジット値とクレジット タイプ) を肉付けする JavaScript が既に添付されています。これは、その目的のために機能する JavaScript です。

 <script type="text/javascript">
function changeValue(){

    var option=document.getElementById('courseno').value;
    if(option=="E100"){
            document.getElementById('credval').value="10";
            document.getElementById('credtype').value="EngFresh";
    }
        else if(option=="E200"){
            document.getElementById('credval').value="10";
            document.getElementById('credtype').value="EngSoph";
        }

}
 </script>

また、選択リストを生成する tlist sql タグの外側にある (そしてそのままにしておく必要がある) 非表示フィールドにデータを入力する必要があります。

これが私のSQLコードです:

<select id="courseno" name="course_number" onchange="changeValue();">
<option value="">Select a Course</option>
~[tlist_sql;
     SELECT cc.course_number, cc.section_number, c.COURSE_NAME  
     FROM cc cc
     RIGHT JOIN COURSES c ON c.COURSE_NUMBER = cc.course_number
     RIGHT JOIN STUDENTS s ON cc.studentid = s.id 
     WHERE cc.studentid = ~(curstudid)
     AND TERMID = ~(curtermid)
     AND c.CreditType LIKE 'English%'
     AND NOT EXISTS (
          SELECT * FROM storedgrades sg
          WHERE sg.studentid = ~(curstudid)
          AND sg.course_number = c.course_number
                    )
     ORDER BY c.course_name;]
<option name="~(course_no)" value="~(course_no)" id="~(secno)">~(course_no).~(secno) (~(cname))</option>

        [/tlist_sql]

        </select></td>
    </tr>

そのすぐ下に、入力したい隠しフィールドがあります。

<td width="25%" class="bold">&nbsp;</td>
<td><input type="text" id="secnum" name="section_number" value=""> </td>

各オプションの ID 要素と巧妙な jquery を使用して非表示フィールドにデータを入力できると考えて、各オプションに ID としてセクション番号を付けましたが、うまくいきません。数字で始まるオプション ID タグを使用しないでくださいというコミュニティから適切に回答された別の質問を読んだところですが、どうすればよいでしょうか?

誰か助けてくれませんか?

いつもありがとう、シェリー

4

2 に答える 2

1

あなたの問題は、IDが数字であることに起因するとは思いません。どの jQuery を試したかはわかりませんが、おそらく jQuery はまったく必要ありません。あなたが持っているものが正しく機能していて、PowerSchoolコードが期待どおりに要素を配置していると仮定すると(これが機能しない場合は、ブラウザーでソースを確認してください)、からIDを取得できるはずです次のように、選択したオプションを changeValue 関数内で変数に格納し、その値を「secnum」フィールドにプッシュします。

function changeValue(){
    var courseDropdown = document.getElementById('courseno');
    var selectedElement=courseDropdown.options[courseDropdown.selectedIndex];
    var option=selectedElement.value;
    var courseNo = selectedElement.getAttribute("id");
    if(option=="E100"){
        document.getElementById('credval').value="10";
        document.getElementById('credtype').value="EngFresh";
    }
    else if(option=="E200"){
        document.getElementById('credval').value="10";
        document.getElementById('credtype').value="EngSoph";
    }

   document.getElementById('secnum').value=courseNo;

}

「オプション」変数の設定方法を変更しましたが、同じように機能します。「secnum」フィールドが設定されている最後の行を移動したり、「if」などでラップしたりする場合があります。私はあなたの完全な要件を知りません。

とは言っても、この状況で jQuery を使用しても問題はありませんが、極端な後方ブラウザー互換性が必要でない限り、この場合は必要ありません。

于 2015-04-14T20:12:11.367 に答える