2017-12-07 7 views
0

私のselectオプションのPOSTをrequestaccessというURLに送信するスクリプトがあります。これは2つのうちの1つのみを使用すると効果的ですが、他のフィールドを変更した場合、POSTの結果は最初のものはNone、2番目のものは正しい、その逆もあります。私の望ましい結果は、それがのように表示するようにしているため2回のAjax呼び出しは、一度に1つの条件にしか合致しません。

None 
1 or 2 

or 

7, 5, 3, 6, 4 
None. 

::、しかしとしての私のプリントのどちらかが表示され

selectedaccesslevel = request.POST.get('accesslevelid') 
print(selectedaccesslevel) 
selectedphi = request.POST.get('phi') 
print(selectedphi) 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
<select title ="accesslevelid" class="form-control" id="accesslevelid" onclick="accesslevelid"> 
      <option value=""> Please select your access level </option> 
      <option value="7"> Facility </option> 
      <option value="5"> Division </option> 
      <option value = "3"> Corporate </option> 
      <option value = "6"> Market </option> 
      <option value = "4"> Group </option> 
</select> 
<script> 
$(document).ready(function() { 
    $('#accesslevelid').on('click', function() { 
     var accesslevelid = $(this).val(); 
     $.ajax({ url: "{% url 'requestaccess' %}", 
       headers: { 'X-CSRFToken': '{{ csrf_token }}' }, 
       data: { 
        accesslevelid: accesslevelid, 
       }, 
       type: 'POST', 
       success: function (result) { 
        ; 
       }, 
       }); 
     }); 
    }); 
</script> 
     </div> 
     <div class="col"> 


      <label for="phi"><h3>PHI</h3></label> 

      <select class="form-control" id="phi" title = "phi" onclick="phi"> 
      <option value = ""> Please select if you need access to PHI data </option> 
      <option value = "0"> No </option> 
      <option value = "1"> Yes </option> 

      </select> 
      <script> 
      $(document).ready(function() { 
       $('#phi').on('click', function() { 
        var phi = $(this).val(); 
        $.ajax({ url: "{% url 'requestaccess' %}", 
          headers: { 'X-CSRFToken': '{{ csrf_token }}' }, 
          data: { 
          phi: phi, 
          }, 
          type: 'POST', 
          success: function (result) { 
          ; 
          }, 
         }); 
       }); 
      }); 
      </script> 

私の見解は以下とPOST値を取得します

7, 5, 3, 6, or 4 
1 or 2 

答えて

1

多分jusトンの両方を選択するための単一のクリック機能を書き、あなたは選択のいずれかをクリックしてすなわち、各時間は、あなたが選択した値の両方を取得し、ビューに渡し、このような何か:

$(document).ready(function() { 
      $('.my_select').on('click', function() { 
       var phi = $('#phi').val(); 
       var accesslevelid = $('#accesslevelid ').val(); 
       $.ajax({ url: "{% url 'requestaccess' %}", 
         headers: { 'X-CSRFToken': '{{ csrf_token }}' }, 
         data: { 
         phi: phi, 
         accesslevelid: accesslevelid 
         }, 
         type: 'POST', 
         success: function (result) { 
         ; 
         }, 
        }); 
      }); 
     }); 

はにを忘れないでください両方の選択肢にクラス名 'my_select'を追加してください。

<select class="form-control my_select" id="phi" title = "phi" > 
<select title ="accesslevelid" class="form-control my_select" id="accesslevelid"> 
+0

あなたが示唆したようにワンクリック機能を使用してみましたが、下のコードを自分のコードの下に掲載しましたが、値は返されません。 accesslevelidをそのまま再追加してPHIで組み合わせようとすると、accesslevelidだけがPOSTに値を返します。 – student101

+0

POSTをデータベースに送信すると、my_selectの各POSTに個別にアクセスする必要があります。 – student101

+0

これは$( '。my_select')なので、両方の選択項目にクラス "my_select"を追加する必要があります。現在、あなたは両方の選択肢のクラス名としてのみ "フォームコントロール"を持っています。それを変更してください。私はそれがうまくいくとうまくいくと思います。そして、あなたは既にスクリプトコードのclickイベントをバインドしているので、onclick = "accesslevelid"は必要ありません。 – rajkris

関連する問題