Задать вопрос
  • Как мгновенно изменить параметр mysql через кнопку тумблер?

    @Dhanada Автор вопроса
    RidgeA, Спасибо. Всё. Нашел решение через AJAX.
    <?php
    $query=mysql_connect("localhost","root","");
    mysql_select_db("freeze",$query);
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head profile="http://gmpg.org/xfn/11">
    <title>iPhone Style Radio and Checkbox Switches, found on DevGrow.com</title>
    <script type="text/javascript"src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js">
    </script>
    <script type="text/javascript">
    $(document).ready(function(){
    $('#myonoffswitch').click(function(){
    var myonoffswitch=$('#myonoffswitch').val();
    if ($("#myonoffswitch:checked").length == 0)
    {
    var a="false";
    }
    else
    {
    var a="true";
    }
    
    $.ajax({
    type: "POST",
    url: "ajax.php",
    data: "value="+a ,
    success: function(html){
    $("#display").html(html).show();
    }
    });
    
    });
    });
    </script>
    
    <script type="text/javascript">
    $(document).ready( function(){
    $(".cb-enable").click(function(){
    var parent = $(this).parents('.switch');
    $('.cb-disable',parent).removeClass('selected');
    $(this).addClass('selected');
    $('.checkbox',parent).attr('checked', true);
    });
    $(".cb-disable").click(function(){
    var parent = $(this).parents('.switch');
    $('.cb-enable',parent).removeClass('selected');
    $(this).addClass('selected');
    $('.checkbox',parent).attr('checked', false);
    });
    });
    </script>
    
    <style type="text/css">
    .onoffswitch {
    position: relative; width: 90px;
    -webkit-user-select:none; -moz-user-select:none; -ms-user-select: none;
    }
    .onoffswitch-checkbox {
    display: none;
    }
    .onoffswitch-label {
    display: block; overflow: hidden; cursor: pointer;
    border: 2px solid #999999; border-radius: 20px;
    }
    .onoffswitch-inner {
    width: 200%; margin-left: -100%;
    -moz-transition: margin 0.3s ease-in 0s; -webkit-transition: margin 0.3s ease-in 0s;
    -o-transition: margin 0.3s ease-in 0s; transition: margin 0.3s ease-in 0s;
    }
    .onoffswitch-inner:before, .onoffswitch-inner:after {
    float: left; width: 50%; height: 30px; padding: 0; line-height: 30px;
    font-size: 14px; color: white; font-family: Trebuchet, Arial, sans-serif; font-weight: bold;
    -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box;
    }
    .onoffswitch-inner:before {
    content: "OFF";
    padding-left: 10px;
    background-color: #2FCCFF; color: #FFFFFF;
    }
    .onoffswitch-inner:after {
    content: "ON";
    padding-right: 10px;
    background-color: #EEEEEE; color: #999999;
    text-align: right;
    }
    .onoffswitch-switch {
    width: 18px; margin: 6px;
    background: #FFFFFF;
    border: 2px solid #999999; border-radius: 20px;
    position: absolute; top: 0; bottom: 0; right: 56px;
    -moz-transition: all 0.3s ease-in 0s; -webkit-transition: all 0.3s ease-in 0s;
    -o-transition: all 0.3s ease-in 0s; transition: all 0.3s ease-in 0s;
    }
    .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner {
    margin-left: 0;
    }
    .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch {
    right: 0px;
    }
    </style>
    
    </head>
    <body>
    <div class="onoffswitch">
    <input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="myonoffswitch"
    <?php
    $query3=mysql_query("select * from choice where id=1");
    $query4=mysql_fetch_array($query3);
    if($query4['choice']=="off")
    {
    echo "checked";
    }
    ?>>
    <label class="onoffswitch-label" for="myonoffswitch">
    <div class="onoffswitch-inner"></div>
    <div class="onoffswitch-switch"></div>
    </label>
    </div>
    
    <div id="display"></div>
    </body>
    </html>


    ФАЙЛ ajax.php
    <?php
    $query=mysql_connect("localhost","root","");
    mysql_select_db("freeze",$query);
    if(isset($_POST['value']))
    {
    $value=$_POST['value'];
    mysql_query("update choice set choice='$value' where id='1'");
    echo "<h2>You have Chosen the button status as:" .$value."</h2>";
    }
    ?>


    Только я ещё переписал его под PDO.
  • Как мгновенно изменить параметр mysql через кнопку тумблер?

    @Dhanada Автор вопроса
    RidgeA,
    это файл
    <?php
    
    include "db.php";
    
    $query_pag_data = "SELECT id,param from db;
    $result_pag_data = mysql_query($query_pag_data) or die('MySql Error' . mysql_error());
    $finaldata = "";
    $tablehead="<tr><th>param</th></tr>";
    while($row = mysql_fetch_array($result_pag_data)) 
    {
    
    $id=$row['id'];
    $param=htmlentities($row['param']);
    
    
    $tabledata.="<tr id='$id' class='edit_tr'>
    
    <td class='edit_td' >
    <span id='one_$id' class='text'><label class="switch">
            <input type="checkbox" checked>
            <span class="slider round"></span>
    <input type="checkbox" value='$param' class='editbox' id='one_input_$id' checked>
    </td>
    
    </tr>";
    }
    $finaldata = "<table width='100%'>". $tablehead . $tabledata . "</table>"; // Content for Data
    
    echo $finaldata;
    }


    это обработчик формы (live_edit_ajax.php)
    <?php
    include("db.php");
    
    if($_POST['id'])
    {
    $id=mysql_escape_String($_POST['id']);
        $param=mysql_escape_String($_POST['param']);
    $sql = "update db set param='$param' where id='$id'";
    mysql_query($sql);
        imap_alerts($_POST);
    }
    ?>


    Это js (я его выдрал из другого проекта с редактируемыми полями таблицы. Там всё работало. И я попытался по аналогии запихнить туда тумблер так же в таблице- PS - в js конечно я слабоват)

    // 9lessons programming blog
    // Srinivas Tamada http://9lessons.info
    $(document).ready(function()
    
    $(".edit_tr").live('click',function()
    {
    var ID=$(this).attr('id');
    
    $("#one_"+ID).hide();
    
    $("#one_input_"+ID).show();
    
    
    
    }).live('change',function(e)
    {
    var ID=$(this).attr('id');
    
    var one_val=$("#one_input_"+ID).val();
    
    var dataString = 'id='+ ID +'&param='+one_val;
    if(one_val.length>0&& two_val.length>0 && three_val.length>0 && four_val.length>0)
    {
    
    $.ajax({
    type: "POST",
    url: "live_edit_ajax.php",
    data: dataString,
    cache: false,
    success: function(e)
    {
    
    $("#one_"+ID).html(one_val);
    
    
    e.stopImmediatePropagation();
    
    }
    });
    }
    else
    {
    alert('Enter something.');
    }
    
    });
    
    // Edit input box click action
    $(".editbox").live("mouseup",function(e)
    {
    e.stopImmediatePropagation();
    });
    
    // Outside click action
    $(document).mouseup(function()
    {
    
    $(".editbox").hide();
    $(".text").show();
    });

    Короче, на этом всём я понял, что есть более оптимальные решения.