2017-07-30 14 views
0

次のスクリプトは初めて起動しますが、5つの選択ドロップダウンの変更はありません。コードが初めて動作しない理由と、このコードを最適化できる理由をご案内してください。選択オプションを変更した後にonchangeイベントが機能しないコード

<script> 
      $(document).ready(function(){ 
       $('#cfy1').change(function() { 
         var selectedOption = $('#cfy1 option:selected'); 
         $('#show_finyear').html(selectedOption.val()); 
       }); 
       $('#cmd2').change(function() { 
         var selectedOption = $('#cmd2 option:selected'); 
         $('#show_commandName').html(selectedOption.val()); 
       }); 
       $('#Stn3').change(function() { 
         var selectedOption = $('#Stn3 option:selected'); 
         $('#show_stationName').html(selectedOption.val()); 
       }); 
       $('#status4').change(function() { 
         var selectedOption = $('#status4 option:selected'); 
         $('#show_statusList').html(selectedOption.val()); 
       }); 
       $('#cfa5').change(function() { 
         var selectedOption = $('#cfa5 option:selected'); 
         $('#show_cfaList').html(selectedOption.val()); 
       }); 
       var finyear  = $("#show_finyear").html(); 
       var cmdname  = $("#show_commandName").html(); 
       var stnname  = $("#show_stationName").html(); 
       var statusname = $("#show_statusList").html(); 
       var cfaname  = $("#show_cfaList").html(); 
       $.ajax({ 
         url:"get_value.php", 
         method:"POST", 
         data:{finyear:finyear,cmdname:cmdname,stnname:stnname,statusname:statusname,cfaname:cfaname}, 
         success:function(data){ 
          $('#recordsfromraky').html(data); 
         } 
       }); 

      }); 

     </script> 

否定的な投票をしないでください。これらの種類のビットを使用できる人は多くいます。ありがとうございました。

+0

の指導と支援に基づいては、AJAX呼び出しがevrytime(選択のいずれかで)値の変化をトリガすることを意図しましたか? – dev8080

+0

はいこれらの値はすべて、get_value.phpに送信され、WHERE句でこれらの値を使用してMySQL文が実行され、テーブルが新しいレコードで更新されます。実際には、私が達成しようとしているものです。 –

+0

ajaxリクエストはページロード時にのみ行われています。ユーザーが値を設定する前に – charlietfl

答えて

0

これはdev8080

<script> 

      $(document).ready(function(){ 
      $('#cfy1').change(function() { 
        var selectedOption = $('#cfy1 option:selected'); 
        $('#show_finyear').html(selectedOption.val()); 
        fetchChange(); 
      }); 
      $('#cmd2').change(function() { 
        var selectedOption = $('#cmd2 option:selected'); 
        $('#show_commandName').html(selectedOption.val()); 
        fetchChange(); 
      }); 
      $('#Stn3').change(function() { 
        var selectedOption = $('#Stn3 option:selected'); 
        $('#show_stationName').html(selectedOption.val()); 
        fetchChange(); 
      }); 
      $('#status4').change(function() { 
        var selectedOption = $('#status4 option:selected'); 
        $('#show_statusList').html(selectedOption.val()); 
        fetchChange(); 
      }); 
      $('#cfa5').change(function() { 
        var selectedOption = $('#cfa5 option:selected'); 
        $('#show_cfaList').html(selectedOption.val()); 
        fetchChange(); 
      }); 

     }); 
     fetchChange(); 
     function fetchChange() { 
       var finyear = $("#show_finyear").html(); 
       var cmdname = $("#show_commandName").html(); 
       var stnname = $("#show_stationName").html(); 
       var statusname = $("#show_statusList").html(); 
       var cfaname  = $("#show_cfaList").html(); 
       window.alert('yep'); 
       $.ajax({ 
         url:"get_value.php", 
         method:"POST", 
         data:{finyear:finyear,cmdname:cmdname,stnname:stnname,statusname:statusname,cfaname:cfaname}, 
         success:function(data){ 
          $('#recordsfromraky').html(data); 
         } 
       }); 
      }; 
    </script> 
+0

ありがとう、あなたのdev8080 –

0

は、おそらくあなたは、あなたのハンドラのにAJAXの呼び出しを必要とするconcept-を理解しています。念のため

-

<script> 
     var fetchChange = function(){ 
       var finyear  = $("#show_finyear").html(); 
       var cmdname  = $("#show_commandName").html(); 
       var stnname  = $("#show_stationName").html(); 
       var statusname = $("#show_statusList").html(); 
       var cfaname  = $("#show_cfaList").html(); 
       $.ajax({ 
         url:"get_value.php", 
         method:"POST", 
         data:{finyear:finyear,cmdname:cmdname,stnname:stnname,statusname:statusname,cfaname:cfaname}, 
         success:function(data){ 
          $('#recordsfromraky').html(data); 
         } 
       }); 
      }; 

      $(document).ready(function(){ 
      $('#cfy1').change(function() { 
        var selectedOption = $('#cfy1 option:selected'); 
        $('#show_finyear').html(selectedOption.val()); 
        fetchChange(); 
      }); 
      $('#cmd2').change(function() { 
        var selectedOption = $('#cmd2 option:selected'); 
        $('#show_commandName').html(selectedOption.val()); 
        fetchChange(); 
      }); 
      $('#Stn3').change(function() { 
        var selectedOption = $('#Stn3 option:selected'); 
        $('#show_stationName').html(selectedOption.val()); 
        fetchChange(); 
      }); 
      $('#status4').change(function() { 
        var selectedOption = $('#status4 option:selected'); 
        $('#show_statusList').html(selectedOption.val()); 
        fetchChange(); 
      }); 
      $('#cfa5').change(function() { 
        var selectedOption = $('#cfa5 option:selected'); 
        $('#show_cfaList').html(selectedOption.val()); 
        fetchChange(); 
      }); 

     }); 

    </script> 

私も、AJAX呼び出しが行われている間、一時的に選択を無効にすることをお勧めします。

+0

私は最初のインスタンスでもこの方法を試しました。しかし、それはAMWP.php:14 Uncaught SyntaxError:Unexpected identifier'を 'var fetchChange = { var finyear = $("#show_finyear ")。html();'自身にも与えました –

+0

私はこれに最初の行を変更しました'function fetchChange(){'また、ドキュメントが準備されているときに初めてこの関数を呼び出します。 –

+0

あなたの許可dev8080で、私はあなたのコードを(変更された)メンバーのために私の答えとして掲示しています。 –

関連する問題