2017-03-13 15 views
11

Bir kayıt üzerinde çalışıyorum ve ülke ve eyalet için alanlarım var.Gönderme/yenileme sonrasında seçili seçeneği belirle seç

Sorunum, seçtiğim ülke ve devletin gönderimden sonra saklanmadığı bir durum.

Bu

<script type="text/javascript"> 
    document.getElementById('country').value = "<?php echo $_POST['country'];?>"; 
</script> 

çalıştı ama işe yaramadı.

yüzden seçimler hala varsayılan seçenekler olduğunu sessionStorage

$(function() { 
    $('#country').change(function() { 
     sessionStorage.setItem('todoData', this.value); 
    }); 
    if(sessionStorage.getItem('todoData')){ 
     $('#country').val(sessionStorage.getItem('todoData')); 
    } 
}); 
</script> 

Bu ülkeye ancak ülkede çalışabilecek kullanarak başka seçeneği denedik.

Bunu nasıl düzeltebilirim ... veya çalışmasını sağlamak için başka bir seçenek var mı?

Teşekkürler.

ÖRNEK KOD

JSFIDDLE

+0

Ülke-Devlet ilişkisini nasıl kontrol ettiniz? Bence bu gerçek problem. Kontrolünüz, seçimi varsayılan değer veya mevcut değeriniz ile başlatabilir olmalıdır. HTML5 localStorage ile çalışmak, eski tarayıcılarda size sorun getirecektir. https://www.w3schools.com/html/html5_webstorage.asp –

+0

Lütfen tüm üçüncü taraflara ait bir sitede değil, kendi başlığındaki [mcve] 'deki tüm ilgili kodları sağlayın. Ödül jsfiddle.net alamayan insanlar için adil değildi ... –

+0

Kod çok uzun efendim ... bu yüzden oraya koydum –

cevap

9

arzu işlevsellik çalışma örneği olmasıdır. Önümde cevap veren kişi gibi localStorage kullanıyorum.

//handle select changes, put new data in storage 
document.getElementById('country').onchange = function() { 
    console.log('country change'); 
    localStorage.setItem('country', this.value); 
    populateStates('country', 'state'); 
}; 
document.getElementById('state').onchange = function() { 
    localStorage.setItem('state', this.value); 
}; 
document.getElementById('country2').onchange = function() { 
    localStorage.setItem('country2', this.value); 
}; 

https://jsfiddle.net/a0uj5d86/2/

Sonra sonunda doldurmak ülkelerde ben

var selection = 'USA'; 
if (localStorage.getItem(countryElementId)) { 
    console.log('found ' + countryElementId + ' in storage = ' + localStorage.getItem(countryElementId)); 
    var selection = localStorage.getItem(countryElementId); 
} 
//select our country (default USA, or local storage if applicable) 
findAndSelect(countryElementId, selection); 
if (countryElementId == 'country') { 
    //we just populated country, now populate states 
    populateStates(countryElementId, stateElementId); 
    if (localStorage.getItem(stateElementId)) { 
    //if weve got a state to select, select it 
    findAndSelect(stateElementId, localStorage.getItem(stateElementId)); 
    } else { 
    findAndSelect(stateElementId, 'Alabama'); 
    } 
} 

Ayrıca bazı yaşadığınız koduna üstlenmeden oran-n-biter mi gider biraz Diddy var. Bir bakış ver ve herhangi bir soru ile bana geri dön!

+0

Siz bayın işe yararsınız. ama ABD olan varsayılan ülke çalışmıyor –

+0

Ah evet, ABD bölümünü çıkardım. [Bu düzeltmelidir] (https://jsfiddle.net/a0uj5d86/1/) – Bango

+0

ABD ülkesi altında eyaletler gösterme efendim –

2

HTML5 yerel depolama alanını kullanmak için izin verilir? Burada

var selectedVal = localStorage.getItem('selectedVal'); 
    if (selectedVal){ 
     $('#mySelect').val(selectedVal) 
    } 

keman İşte http://jsfiddle.net/jvso1Lcc/22/

+0

evet efendim, ama sadece ülke üzerinde çalışıyor –

İlgili konular