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
あなたが示唆したようにワンクリック機能を使用してみましたが、下のコードを自分のコードの下に掲載しましたが、値は返されません。 accesslevelidをそのまま再追加してPHIで組み合わせようとすると、accesslevelidだけがPOSTに値を返します。 – student101
POSTをデータベースに送信すると、my_selectの各POSTに個別にアクセスする必要があります。 – student101
これは$( '。my_select')なので、両方の選択項目にクラス "my_select"を追加する必要があります。現在、あなたは両方の選択肢のクラス名としてのみ "フォームコントロール"を持っています。それを変更してください。私はそれがうまくいくとうまくいくと思います。そして、あなたは既にスクリプトコードのclickイベントをバインドしているので、onclick = "accesslevelid"は必要ありません。 – rajkris