我在PHP是這樣的:localStorage的:店面複選框自動檢查
if(isset($_POST['submit']){
$check = in_array($row['service_object_id'], $values) ? 'checked' : '';
}
echo '<input type="checkbox" class="faChkRnd" id="'.$row['service_object_id'].'" name="list[]" value="'.$row['service_object_id'].'" '.$check.'>';
每次我按一個提交按鈕,它會檢查複選框與價值觀裏面$check
。 它運行良好,但我想按下按鈕後,自動存儲在localStorage中選中的複選框。
我已經使用這個腳本,並將其存儲點擊後,但它不會自動工作:
<script type = "text/javascript">
$('.faChkRnd').on('click', function() {
var fav, favs = [];
$('.faChkRnd').each(function() { // run through each of the checkboxes
fav = {id: $(this).attr('id'), value: $(this).prop('checked')};
favs.push(fav);
});
localStorage.setItem("favorites", JSON.stringify(favs));
});
$(document).ready(function() {
var favorites = JSON.parse(localStorage.getItem('favorites'));
if (!favorites.length) {return};
console.debug(favorites);
for (var i=0; i<favorites.length; i++) {
console.debug(favorites[i].value == 'on');
$('#' + favorites[i].id).prop('checked', favorites[i].value);
}
});
</script>
任何想法?謝謝 !
使用此解決方案,在我刷新頁面後,它將清除localStorage,因爲我得到僅在提交按鈕後才需要檢查的複選框的值。我找到了一個沒有JS的替代解決方案:我將我的$ check值存儲到SESSION中......如果您認爲可以用JS解決此問題,請不要害羞:) – xarj
如果刷新頁面,則必須將數據保存到會話或cookie將其設置爲複選框 相同:'var localStorage = sessionStorage;' – Xupitan