Javascript hata sayfayı yeniden yükler kez benim form seçili yankı değil neden mi?

2 Cevap php

PHP / JavaScript / Ajax hala yeni duyuyorum ve bu sorunu çekim sorun (haftadır devam etmekte) çok zor bir zaman yaşıyorum.

Sitemin doldurulacak tüm alanları gerektiren bir üyesi sayfa olmak için bir kayıt vardır. Bu Kistik Fibrozis toplum için bir web sitesi olduğunu, bu nedenle Kistik Fibrozis için ilişki tercih formunda bir bölüm var. Eğer ben kutusuna bir açılır (dişi) (erkek) veya Cyster belirir ve size seçenek FIBRO verir, buna sahip seçerseniz (biliyorum Birisi var / var). Eğer bildiğim birini seçerseniz, farklı bir damla aşağı çeşitli seçenekleri (teyze, amca vb) ile açılır

Ben yapılabilir olası hataların sayısız var. Şifreler uyuşmuyor, captcha resim veya kullanım, vb dolduran / teslim olmama şartları .. Bu nedenle sayfa hata mesajı görüntülemek için yükler. Sayfa olması gerektiği gibi önceden seçilmiş bilgi yüklemek zorunda gibi benim seçenek tüm değerler arasında "seçilen echo" koyduk. Seçtiğiniz zaman, bu ne olur 'Ben CF var':

Kaydolurken - Ben ilk defa "Ben CF var" ama "Cyster veya FIBRO" doldurmak için unutmak seçerseniz ben hata mesajı alıyorum. Ben geri dönmek ve Cyster veya FIBRO eklediğinizde SONRA, o Cyster veya fibro seçilmiş kutusuna GÖSTERİLERİ olsa, ben CF benim ilişki girmeniz gerekir ki, söyle devam ediyor.

Ben imza ediyorum eğer. "Ben CF var" VE "Cyster veya FIBRO" doldurulmuş olarak CF ilgili doldurdu ama herhangi bir hata mesajı (yanlış e-posta, şifreler vs vs eşleşmiyor) Cyster veya fibro cevap düşer (orada değil) almak mı ve ben tekrar seçerseniz, benim seçim kabul etmek ve onun açıkça seçilmiş olsa bile "Eğer ilişki seçmelisiniz" söyleyerek tutar olmayacaktır.

Gibi ben bildiğim kadarıyla benim kod doğru görünüyor söyleyebilirim hafta boyunca bu mücadele, ve oldum, dedi. Ben JavaScript ile bir ilgisi var düşünüyorum? İşte benim kod:

(Teşekkür ederim, size yardımcı olmak için çevresindeki kod ihtiyacınız varsa bana bildirin lütfen)

<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>

Burada gayet güzel çalışıyor, diğer seçenek (I CF someon biliyorum) olduğunu:

<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>

İşte javascript chunck olduğunu:

<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>

2 Cevap

Bunu gerçekleştirmek için en iyi yolu, değerleri ve doğrulama yükleme için JavaScript kullanmaktır. Bunu kolaylaştırmak için bir çerçeve kullanabilirsiniz.

  • ExtJS
  • Dojo
  • JQuery

En çok bilinen birkaçıdır. Bu yapmak birlikte AJAX işlevselliği ile inşa formu doğrulayıcılar var sizin daha kolay gibi.

Bkz http://www.extjs.com/deploy/dev/examples/form/dynamic.html

En iyi çözüm (AJAX kullanarak) PHP tarafında doğrulamak ve JSON gibi doğrulama sonucu döndürmektir. Ayrıca bkz: here.