ドロップダウン メニューから値を抽出し、その値を AJAX 呼び出しのパラメーターとして使用するコードがあります。
コードは次のようになります。
HTML
<select class='FormDropDown ' id='ass-assessmentReason' name='ass-assessmentReason'>
<option value='Emergency'>Emergency</option>
<option value='Follow-up'>Follow-up</option>
<option value='Nurse Call'>Nurse Call</option>
</select>
JS
$('#ass-assessmentReason').change(function() {
var selectedOption = $(this).find(":selected").text().replace(/ /g,"_"); // Replace whitespace with _ for URL transportation
console.debug(selectedOption);
$.ajax({
type: "POST",
url: "otrFollowUp.php",
data: "followup=" + selectedOption,
残りのコードを切り捨てましたが、選択したドロップダウン オプションにスペースが含まれていない場合は問題なく動作しますが、スペースが含まれる値は切り捨てられます。
ご覧のとおり、一時的にスペースをアンダースコアに置き換えてから、otrFollowUp.php でこれを逆にすることで、これを修正しようとしました。私が理解できないのは、コンソール デバッガーを見ると「Nurse_Call」が表示されますが、呼び出そうとした URL を見ると「otrFollowUp.php?followup=Nurse」が表示されることです。
何らかの理由で、アンダースコアを無視し、スペースをそのままにしてドロップダウン値を送信し、適切なオプション値を切り捨て、残りのスクリプトを壊しています。AJAX 呼び出しの直前の console.debug() は、スペースをアンダースコアに正常に置き換えていることを示しているため、なぜこれを行っているのかわかりません。