1

私はphpで実行したいこのjavascriptを持っています。以下のコードはフォームで送信されてから印刷されるはずですが、送信されたときにjavascriptが実行されず、出力は単純です

var text = document.getElementById(\'course1\').options[document.getElementById(\'course1\').selectedIndex].text; document.write(text);

これが全体です。

            echo "<form name\"find\" action=\"postEnrolled.php\" method=\"get\" class=\"required\" onsubmit=\"return validate(this);\">";
            echo "<table width=\"225\" border=\"0\" align=\"center\" >";
            echo "<tr>";
            echo "<td width=\"181\"><label>Course#1:</label> <select name=\"dep1\" style=\"width:190px\" class=\"dep1\">";
            echo "<option selected=\"selected\" value=\"\">Select Department</option>";


            include('db.php');
            $sql=mysql_query("select id,data from data where weight='1'");
            while($row=mysql_fetch_array($sql))
            {
                $id = $row['id'];
                $data = $row['data'];
                echo '<option value="'.$id.'">'.$data.'</option>';
            } 


            echo "</select><br/></td>";
            echo "<td width=\"267\">";


            echo "<label>&nbsp;</label><select name=\"course1\" class=\"course1\" style=\"width:200px\">";
            echo "<option selected=\"selected\" value=\"\">Select Course</option>";

            echo "</select>";

            echo "<input type=\"hidden\" name=\"course_1\" value=\"

            <script language='javascript' > 

                    var text = document.getElementById('course1').options[document.getElementById('course1').selectedIndex].text;
                    document.write(text);


            </script>

何か不足していますか?私が本当に望んでいるのは、オプションの値ではなく、オプションのテキストを送信することです。

4

3 に答える 3

6
  1. getElementById名前ではなく、id が course_1 である要素のみを検索します。

  2. script 要素を input 要素内に置かないでください

  3. DOM を呼び出すときは、DOM を準備しておく必要があります ( use document.onload=function(){...yourcodehere...};)

一見すると、この問題に実際に関与している PHP はありません。しかし、オプションの値を変更すると、そのままではコードが実行されないことに気付いていますか? それが必要な場合は、を使用してくださいonchange="yourcodehere;"。しかし、それは隠れた分野なので、あなたが本当に達成したいことを説明する必要があるかもしれません.

編集 :

ユーザーが別のオプションを選択したときに非表示の入力を変更したい場合は、次のようにします。

 <input type=hidden name=course_1 id=course_1>
 <select onchange="document.getElementById('course_1').value=this.options[this.selectedIndex].text;" ...
于 2012-08-20T12:49:51.377 に答える
1

あなたの問題は、タグの属性の<script>中にタグを入れていることです。これは有効な HTML または JavaScript ではないため、機能しません。value<input>

于 2012-08-20T12:50:35.143 に答える
0

なぜ投稿しないのですか?実際に発生したエラーは何ですか?実際、このアプローチ (php タグへの JavaScript コードを含む) はまったく良くありません。任意のページで JavaScript を使用する場合は、ページの最上部の script タグの下に配置するだけです。試してみてください、あなたを助けるでしょう..!

于 2012-08-20T13:08:11.087 に答える