私はまだ PHP/Javascript/Ajax に不慣れで、この問題のトラブルシューティングに非常に苦労しています (何週間も続いています)。
私のサイトには、すべてのフィールドに入力する必要があるメンバー ページになるための登録があります。これは嚢胞性線維症コミュニティのウェブサイトです。そのため、フォームには嚢胞性線維症との関係を選択するセクションがあります。(I have it/ Some I know has it) I have it を選択すると、ドロップ ダウン ボックスが表示され、Fibro (男性) または Cyster (女性) のオプションが表示されます。私が知っている人を選択すると、別のドロップダウンが開き、さまざまなオプション (叔母、叔父など) が表示されます。
発生する可能性のあるエラーは無数にあります。パスワードが一致しない、キャプチャまたは使用条件がチェックされていない、または入力されていないなどの理由で、ページがリロードされてエラー メッセージが表示されます。ページが以前に選択された情報をロードするように、すべてのオプション値に「echo selected」を入れました。[I have CF] を選択すると、次のようになります。
サインアップ時に、最初に「I have CF」を選択したが、「Cyster または Fibro」の入力を忘れると、エラー メッセージが表示されます。その後、戻って Cyster または Fibro を追加すると、Cyster または Fibro が選択されていることがボックスに表示されていても、CF との関係を入力する必要があると表示され続けます。
私がサインアップしている場合。CF との関係を「I have CF」として入力し、「Cyster または Fibro」を入力したが、エラー メッセージが表示された (メールが間違っている、パスワードが一致しないなど) Cyster または Fibro の回答が見つからない (存在しない)もう一度選択すると、選択が受け入れられず、明らかに選択されているにもかかわらず、「関係を選択する必要があります」と言い続けます。
私が言ったように、私はこれに何週間も苦労してきましたが、私のコードは正しいように見えます。Javascriptと関係があると思いますか?これが私のコードです:
(周囲のコードが必要な場合はお知らせください。ありがとうございます)
<tr>
<td class="left">
<span style="color:#FF0000;">*</span> Relation to CF:
</td>
<td class="right">
<select name="CFDistance" onchange="switch_distance(this);">
<option value="null" disabled selected>choose one</option>
<option value="self" <?php if($_POST['CFDistance'] == "self") { echo "selected"; } ?>>I have CF</option>
<option value="others" <?php if($_POST['CFDistance'] == "others") { echo "selected"; } ?>>Someone I know has CF</option>
</select>
<div id="self_cf_box" class="signup_dropdowns" style="margin:10px 0px 0px 0px;<?php if($_POST['CFDistance'] != "self") { echo "display:none;"; } ?>">
<span style="color:#FF0000;">*</span> I am a
<select id="RelationToCF_self" name="RelationToCF" <?php if($_POST['CFDistance'] != "self") { echo "display:none;"; } ?>>
<option value="null" disabled selected>choose one</option>
<option value="Fibro" <?php if($_POST['RelationToCF'] == "Fibro") { echo "selected"; } ?>>Fibro (male)</option>
<option value="Cyster" <?php if ($_POST['RelationToCF'] == "Cyster") { echo "selected";} ?>>Cyster (female)</option>
</select>
</div>
これは、うまく機能している他のオプションです(私はCFの誰かを知っています):
<div id="others_cf_box" class="signup_dropdowns" style="margin:10px 0px 0px 0px;<?php if($_POST['CFDistance'] != "others") { echo "display:none;"; } ?>">
<span style="color:#FF0000;">*</span> I am this person's
<select id="RelationToCF_others" name="RelationToCF" <?php if($_POST['CFDistance'] != "others") { echo "display:none;"; } ?>>
<option value="null" disabled selected>choose one</option>
<option value="Mom" <?php if ($_POST['RelationToCF'] == "Mom") { echo "selected"; } ?>>Mom</option>
<option value="Dad" <?php if ($_POST['RelationToCF'] == "Dad") { echo "selected"; } ?>>Dad</option>
<option value="Aunt" <?php if ($_POST['RelationToCF'] == "Aunt") { echo "selected"; } ?>>Aunt</option>
<option value="Brother" <?php if ($_POST['RelationToCF'] == "Brother") { echo "selected"; } ?>>Brother</option>
<option value="Caregiver" <?php if ($_POST['RelationToCF'] == "Caregiver") { echo "selected"; } ?>>Caregiver</option>
<option value="Child" <?php if ($_POST['RelationToCF'] == "Child") { echo "selected"; } ?>>Child</option>
<option value="Cousin" <?php if ($_POST['RelationToCF'] == "Cousin") { echo "selected"; } ?>>Cousin</option>
<option value="Friend" <?php if ($_POST['RelationToCF'] == "Friend") { echo "selected"; } ?>>Friend</option>
<option value="Grandma" <?php if ($_POST['RelationToCF'] == "Grandma") { echo "selected"; } ?>>Grandma</option>
<option value="Grandpa" <?php if ($_POST['RelationToCF'] == "Grandpa") { echo "selected"; } ?>>Grandpa</option>
<option value="Guardian" <?php if ($_POST['RelationToCF'] == "Guardian") { echo "selected"; } ?>>Guardian</option>
<option value="Husband" <?php if ($_POST['RelationToCF'] == "Husband") { echo "selected"; } ?>>Husband</option>
<option value="Nephew" <?php if ($_POST['RelationToCF'] == "Nephew") { echo "selected"; } ?>>Nephew</option>
<option value="Niece" <?php if ($_POST['RelationToCF'] == "Niece") { echo "selected"; } ?>>Niece</option>
<option value="Partner" <?php if ($_POST['RelationToCF'] == "Partner") { echo "selected"; } ?>>Partner</option>
<option value="Sister" <?php if ($_POST['RelationToCF'] == "Sister") { echo "selected"; } ?>>Sister</option>
<option value="Uncle" <?php if ($_POST['RelationToCF'] == "Uncle") { echo "selected"; } ?>>Uncle</option>
<option value="Wife" <?php if ($_POST['RelationToCF'] == "Wife") { echo "selected"; } ?>>Wife</option>
</select>
</div>
これがJavaScriptチャンクです:
<script type="text/javascript">
function switch_distance(el) {
if(el.value == 'self') {
document.getElementById('self_cf_box').style.display = "block";
document.getElementById('RelationToCF_self').disabled = false;
document.getElementById('others_cf_box').style.display = "none";
document.getElementById('RelationToCF_others').disabled = true;
}else{
document.getElementById('self_cf_box').style.display = "none";
document.getElementById('RelationToCF_self').disabled = true;
document.getElementById('others_cf_box').style.display = "block";
document.getElementById('RelationToCF_others').disabled = false;
}
}
</script>