Помогите c checkbox в PHP

Авторизация
 
  • Автор

    Подскажите как сделать, чтобы в настройках профайла, человек мог включать и отключать оповещения на емейл и это значение передавалось в БД таблицу users и в id человека, передавалось значение 1 или 0 в ячейку email_on . По умолчанию 0, оповещения отключены...

    Вот форма по умолчанию:

    
    <form method="post" action="">
    <input type="checkbox" name="email" value="true" > Оповещать на email
    <p><input type="submit" value="Сохранить"></p>
    </form>
    
    

    При сохранении форма должна отправить в БД значение 1 и стать такой:

    
    <form method="post" action="">
    <input type="checkbox" name="email" value="true" checked> Оповещать на email
    <p><input type="submit" value="Сохранить"></p>
    </form>
    
    

    При нажатии сохранить форма должна отправить значение 0 и галочка убраться...


  • Если галочка не стоит, то никакие данные не передаются.

  • Автор

    Это понятно... она не сохраняется...


  • Проверяете на сервере если есть email, то "1".

  • Автор

    Буду думать)


  • это значение передавалось в БД таблицу **users** и в **id** человека, передавалось значение 1 или 0 в ячейку **email_on** 
    

    Я бы сделал вот так ( Вместо нуля будет двойка :): 😞

    
    <b>Оповещать на email?</b><br>
    <form method='post' action=''> 
    <input type='radio' name='email' value='1' checked > Да 
    <input type='radio' name='email' value='2' > Нет 
    <p><input type='submit' value='Сохранить'></p> 
    </form> 
    
    <?php
    if (($_POST['email'] == 2) or ($_POST['email'] == 1)) { $email = $_POST['email'];
    mysql_query("
     UPDATE users
     SET email_on = '$email'
     WHERE id = '$iduser'",$db); } 
    $referer = $_SERVER['HTTP_REFERER'];
    header("Location:$referer");
    exit(); ?>
    

    По умолчанию нужно ставить в phpmyadmin, когда создаёшь строку, если не ошибаюсь.

    И

    <?php
    $emailsql = mysql_query("SELECT email_on FROM users WHERE id = $iduser", $db);
    $email = mysql_fetch_array($emailsql);
    if($email['email_on'] == 2) { echo("
    <b>Оповещать на email?</b><br>
    <form method='post' action=''> 
    <input type='radio' name='email' value='1' > Да 
    <input type='radio' name='email' value='2' checked > Нет 
    <p><input type='submit' value='Сохранить'></p> 
    </form>"); 
    } else { 
    echo("<b>Оповещать на email?</b><br>
    <form method='post' action=''> 
    <input type='radio' name='email' value='1' checked > Да 
    <input type='radio' name='email' value='0' > Нет 
    <p><input type='submit' value='Сохранить'></p> 
    </form>"); }
     ?>
    

    Не проверял, возможны ошибки. C checkbox такое же. Как и говорил Telonko ^^.

  • Автор

    Та мне именно галочка нужна... но этот вариант тоже будет нужен....

    С галочкой не совсем ещё разобрался, руки не доходят...

    Получилось сделать, если в бд ставишь еденицу, то появляется галочка, ставишь ноль пропадает... ещё сделал что при нажатии кнопки через это echo выводжилось 1 или 0, то есть проверку на то, стоит галочка или нет.... осталось в БД этот результат записывать....


  • Проверяете на сервере если есть email, то "1".```
    <?
    $notice = (isset($_POST['email'])) ? '1' : '0';

    <form method="post" action="">
    <input type="checkbox" name="email"<?=($row['notice']=='1') ? ' checked="checked"': ''?>/> Оповещать на email
    <p><input type="submit" value="Сохранить"></p>
    </form>

    Название массивов соответственно поменяйте.

  • а как тож самое сделать на файле?

Авторизация