запись текстового поля в mysql при выбранном checkbox

Discussion in 'PHP' started by GAiN, 19 Dec 2012.

  1. GAiN

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

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    Всем добрый день.
    сделал страничку с записью чекбоксов в БД.
    создал и заполнил таблицы:

    PHP:
    CREATE TABLE `tutorial_users` (

    `
    idINT10 NOT NULL AUTO_INCREMENT ,

    `
    usernameVARCHAR50 NOT NULL ,

    `
    adminTINYINTNOT NULL DEFAULT '0',

    PRIMARY KEY ( `id` )

    ENGINE MYISAM
    PHP:
    INSERT INTO `tutorial_users` (

    `
    id` ,

    `
    username` ,

    `
    admin`

    )

    VALUES (

    NULL 'Stewie''0'

    ), (

    NULL 'Peter''0'

    ), (

    NULL 'Brian''0'

    ), (

    NULL 'Meg''0'

    ), (

    NULL 'Lois''0'

    ), (

    NULL 'Chris''0'

    ), (

    NULL 'Greased Up Deaf Guy''0'

    ), (

    NULL 'Quagmire''0'

    );
    сама форма:
    PHP:
    <?php 
    include("connect.php"); 
    $updated FALSE
    if(
    count($_POST) > 0){ 
        
    $admin $_POST['admin']; 
        
    array_map('intval',$admin); 
        
    $admin implode(',',$admin); 
        
    mysql_query("UPDATE tutorial_users SET admin=0") or trigger_error(mysql_error(),E_USER_ERROR); 
        
    mysql_query("UPDATE tutorial_users 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>phpfreaks checkbox tutorial</title> 
    </head> 
    <body> 
    <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post"> 
    <?php 
    if($updated===TRUE){ 
        echo 
    '<div>Privileges Updated!</div>'

    ?> 
    <table> 
    <tr> 
    <th>Username</th> 
    <th>Admin Privileges</th> 
    </tr> 
    <?php 
    $sql 
    "SELECT id,username,admin FROM tutorial_users 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)){ 
        
    $checked = ($admin==1) ? 'checked="checked"' ''
        echo 
    '<tr><td>'.$username.'</td><td><input type="checkbox" name="admin[]" value="'.$id.'" '.$checked.'/></td></tr>'."\n"

    ?> 
    <tr><td colspan="2"><input type="submit" name="submit" value="Update Privileges" /></td></tr> 
    </table> 
    </form> 
    </body> 
    </html>
    файл connect.php:
    PHP:
    <?php   
      $dblocation 
    "localhost";   
      
    $dbname "user_base";   
      
    $dbuser "user";   
      
    $dbpasswd "password";   

      
    $dbcnx mysql_connect($dblocation$dbuser$dbpasswd);   
      if (!
    $dbcnx)   
      {   
        echo 
    "<p>К сожалению, не доступен сервер mySQL</p>";   
        exit();   
      }   
      if (!
    mysql_select_db($dbname,$dbcnx) )   
      {   
        echo 
    "<p>К сожалению, не доступна база данных</p>";   
        exit();   
      }   
      
    $ver mysql_query("SELECT VERSION()");   
      if(!
    $ver)   
      {   
        echo 
    "<p>Ошибка в запросе</p>";   
        exit();   
      }   
      echo 
    mysql_result($ver0);   
    ?>
    при нажатии на чекбокс - справа от него появится поле ввода имени, куда прежде чем сохранить нужно его ввести,
    имя запишется в базу данных и значение выбранного чекбока

    [​IMG]
    как это реализовать в данном коде?
     
    #1 GAiN, 19 Dec 2012
    Last edited: 19 Dec 2012
  2. Befan

    Befan New Member

    Joined:
    27 Mar 2012
    Messages:
    27
    Likes Received:
    0
    Reputations:
    0
    ну (как я бы сделал )
    делаю поле ввода имени скрытым, а
    для появления поля ввода имени нужен яваскрипт типа
    PHP:
    onclick="#("элемент ввода имени").show();"
    на другой (чек)
    PHP:
    onclick="#("элемент ввода имени").hide();"
    в зависимости от того какое значение чекбокса придет в твой пхп, выбираешь записывать имя или нет.
    ну и соответствующие поля в базе данных добавь.
    (описал на русском языке)
     
    #2 Befan, 20 Dec 2012
    Last edited: 20 Dec 2012