Запись Checkbox в базу данных, php+mysql

Discussion in 'PHP' started by GAiN, 7 Oct 2011.

  1. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,531
    Likes Received:
    166
    Reputations:
    99
    Приветствую всех!
    нужно сделать в коде возможность проверки записанного чекбокса, например если открыть в 2х разных браузерах и выбрать один и тот же результат, в одном нажать сохранить, а когда нажать сохранить во втором, нужно чтобы сообщение выдавало: "данный чекбокс уже занят, выберите другой"
    как это можно реализовать ?


    PHP:
    <?php
    include("connect.php");
    $updated FALSE;
    if(isset(
    $_POST['admin']) && is_array($_POST['admin'])){
        
    $admin $_POST['admin'];
        
    $admin array_map('intval',$admin);
        
    $admin implode(',',$admin);
        
    mysql_query("UPDATE theme1 SET admin=1 WHERE id IN ($admin)") or trigger_error(mysql_error(),E_USER_ERROR);
        
    $updated=TRUE;
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>запись темы</title>
    </head>
    <body>
    <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
    <?php
    if($updated===TRUE){
        echo 
    '<div><b>ваша тема сохранена в базу данных! |</div>';
    }
    ?>
    <table>
    <table border="1">
    <colgroup span="2">
    <tr>
    <th>список тем </th>
    <th>выберите тему</th>
    </tr>
    <?php
    $sql 
    "SELECT id,username,admin FROM theme1 WHERE admin=0 ORDER by id ASC";
    $result mysql_query($sql) or trigger_error(mysql_error(),E_USER_ERROR);
    while(list(
    $id,$username,$admin)=mysql_fetch_row($result)){

        echo 
    '<tr><td><h4 style="text-shadow:#6699ff 1px 1px 1px">'.$username.'</h4></td><td><input type="radio" name="admin[]" value="'.$id.'" /></td></tr>'."\n";
    }
    ?>
    <tr><td colspan="2"><input type="submit" name="submit" value="сохранить" /><input type="button" value="отмена" onClick="window.location='http://sitename.ru'"></td></tr><tr>
    </table>
    </form>
    </body>
    </html>
     
  2. barnaki

    barnaki Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    676
    Likes Received:
    130
    Reputations:
    4
    в бд хранишь. через php assign в html нестандартного атрибута чекбоксу 1 или 0.навешиваешь на чекбоксы функцию след--> если он 1 ( занят) по onchange выдаешь предупреждение. и сбрасываешь его .
     
    #22 barnaki, 15 Dec 2011
    Last edited: 15 Dec 2011
  3. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,531
    Likes Received:
    166
    Reputations:
    99
    неподскажите как это реализовать в моём коде ?
    моих знаний недостаточно для реализации ;(
     
  4. barnaki

    barnaki Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    676
    Likes Received:
    130
    Reputations:
    4
    подскажу чего ж нет. допустим выбрал ты из данных значение checkbox со значениями theme = 1 . checked = 1.
    пишешь <form >
    <input type="checkbox" theme="<? php echo $theme;?> is_checked="<? php echo $checked ?> class="checkbox">
    (или это в цикле если их несколько)

    </form>
    потом пишу используя jquery
    <script type="text/javascript">
    Code:
    $(document).ready(fucntion(){
    $(".checkbox").bind("change",function(){
    var checked = $(this).attr("checked");
    var is_checked = $(this).attr("is_checked");
    if (is_checked == 1) {
    alert("этот чекбокс выбран ");
    }
    if (checked == "checked") {$(this).attr("checked","disable(или как там не выбраный checked)")}
    else {$(this).attr("checked","checked");}
    });
    
    
    }) ;
     
    #24 barnaki, 15 Dec 2011
    Last edited: 15 Dec 2011
    1 person likes this.
  5. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,531
    Likes Received:
    166
    Reputations:
    99
    можно ли как то вывести в этот блок результат того чекбокса, который был сохранён ?
    PHP:
    <?php
    if($updated===TRUE){
        echo 
    '<div>настройки сохранены!</div>';
    }
    ?>