2015-12-15 2 views
0

Я пытаюсь сохранить значение флипслита и после перезагрузки webapp, параметр с тем же значением, что и статус, должен быть активным. То есть если вы выберете <option id="v2" value="0">OFF</option>, cookie status будет иметь значение 0 и после перезагрузки страницы флип-переключатель должен показывать OFF.изменить активное состояние флипсвитч jQuery mobile

Теперь после каждой перезагрузки первая опция всегда выбирается автоматически и с этим значением тоже. Как я могу это изменить?

мой flipswitch:

<select id="status" name="status" data-role="flipswitch"> 
    <option id="v1" value="1">ON</option> 
    <option id="v2" value="0">OFF</option> 


</select> 

мой PHP фрагмент:

$t = time() + 60 * 60 * 24 * 1000; 
     setcookie("status", $_POST['status'], $t); 

моя попытка:

function state() { 
var statuse = <?php echo $_COOKIE['status']; ?>; 

if (statuse == 0) { 
    $('#v2').addClass('ui-flipswitch-active'); 

} 
if (statuse == 1) { 
    $('#v1').addClass('ui-flipswitch-active'); 

} 
} 

state(); 

функция, которая вызывает PHP скрипт:

function status() { 
     var stats = $("#status").val(); 
    $.ajax({ url: 'status.php', 

     data: {status: stats}, 
     type: 'post', 
     success: function(output) { 
         //alert(output); 
        } 
}); 
} 

status(); 
setInterval(function(){ 
    status() // this will run after every 5 seconds 
}, 5000); 

ответ

1

Я хотел бы попробовать следующее загрузить соответствующий switchstate на PageLoad:

<select id="status" name="status" data-role="flipswitch" class=""> 
    <option id="v1" value="1" <?php if (isset($_POST['status]') && $_POST['status'] == 1) echo 'class="ui-flipswitch-active"'; ?>>ON</option> 
    <option id="v2" value="0" <?php if (!isset($_POST['status]') || $_POST['status'] == 0) echo 'class="ui-flipswitch-active"'; ?>>OFF</option> 
</select> 

Если вы сделаете это потом с яваскрипт и загрузке страницы медленно вы получите «мерцание», поскольку для обработки javascript требуется некоторое время.

И JavaScript:

$("#status").change(function() { 
    var stats = $("#status").val(); 
    $.ajax({ url: 'status.php', 
    data: {status: stats}, 
    type: 'post', 
    success: function(output) { 
        //alert(output); 
       } 
    }); 
}); 

Таким образом, когда событие изменения выбора срабатывает, он начинает запрос Ajax. Убедитесь, что скрипт php имеет session_start(); В противном случае это, вероятно, не сработает.

Смежные вопросы