За последние 24 часа нас посетили 59137 программистов и 1812 роботов. Сейчас ищут 887 программистов ...

возврат переключателю radio значения

Тема в разделе "PHP и базы данных", создана пользователем maxmsmax, 1 ноя 2011.

  1. maxmsmax

    maxmsmax Активный пользователь

    С нами с:
    1 ноя 2011
    Сообщения:
    8
    Симпатии:
    0
    Добрый день, скажите пожалуйста, как вернуть занчаение переключателю типа radio


    Код (Text):
    1. <tr>
    2. <td>Пол:</td><td><input type="radio" name="sex1" value="checked" <?PHP echo $myrow['sex1']?>>Мужской <br> <input type="radio" name="sex2" value="checked" <?PHP echo $myrow['sex2']?>>Женский </td>
    3. </tr>
    Так, при смене положения записывается и в первое поле и во второе, в итоге, получается что выделяется два положения, а хотелось бы что бы одно.

    Спасибо!
     
  2. Mr. T

    Mr. T Активный пользователь

    С нами с:
    10 ноя 2010
    Сообщения:
    733
    Симпатии:
    0
    Адрес:
    Украина, г. Киев
    HTML:
    1. <input name="radio" type="radio" value="1" /> 1 <input name="radio" type="radio" value="2" /> 2
    PHP:
    1. <?php
    2. echo $_POST['radio'];
    3. ?>
     
  3. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    maxmsmax
    Должен быть одинаковый name и разный value
     
  4. maxmsmax

    maxmsmax Активный пользователь

    С нами с:
    1 ноя 2011
    Сообщения:
    8
    Симпатии:
    0
    Если одинаковые name ставить и разные value то что-то не понимаю, как эти данные сохранить в бд, а потом вернуть их обратно в форму для редактирования....
    Вот сейчас есть форма:
    Код (Text):
    1. <form action="update_users.php" method="post">
    2. <tr>
    3. <td>Пол:</td><td><input type="radio" name="sex1" value="<?php echo $myrow['sex1']?>">Мужской
    4. <br> <input type="radio" name="sex2" value="<?php echo $myrow['sex2']?>" >Женский </td>
    5.     </tr>
    6. <input type="submit" value="Сохранить" />
    7. </form>
    update_users.php
    Код (Text):
    1. $sex1 = (isset($_POST['sex1'])) ? mysql_real_escape_string($_POST['sex1']) : '';
    2. $sex2 = (isset($_POST['sex2'])) ? mysql_real_escape_string($_POST['sex2']) : '';
    потом заносим в базу sex1='$sex1', sex2='$sex2'

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

    Заранее спасибо!
     
  5. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    HTML:
    1. <input type="radio" name="sex" value="1" /> Он
    2. <input type="radio" name="sex" value="2" /> Она
    3. <input type="radio" name="sex" value="3" /> Оно
    PHP:
    1. $sex = isset($_REQUEST['sex']) ? (int) $_REQUEST['sex'] : 0;
     
  6. maxmsmax

    maxmsmax Активный пользователь

    С нами с:
    1 ноя 2011
    Сообщения:
    8
    Симпатии:
    0
    ну это понятно, а как сделать потом вывод
    чтото типа

    Код (Text):
    1. <input type="radio" name="sex" value="1" <?php echo $male; ?>> Мужской
    2.  <input type="radio" name="sex" value="0"  <?php echo $female; ?>>Женский
    что бы выбирал из базы и ставил на место 1 или 0 и selected. который выбран
     
  7. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    И что тут не понятно?
    В таких выборах, как пол - просто руками все значения в коде можно написать - чего там, всего 2-3 инпута с постоянными значениями, которые не зависят от б.д.

    PHP:
    1. <?php
    2. // ...
    3. $sql = "SELECT * FROM `users` WHERE `id` = {$userId}";
    4. $res = mysql_query($sql) or exit(mysql_error());
    5. if(mysql_num_rows($res) > 0)
    6.     $user = mysql_fetch_assoc($res);
    7. else
    8.     exit('Wrong user id');
    9. ?>
    10. <form>
    11.     <input type="radio" name="sex" value="1" <?php if($user['sex'] == 1) echo('checked '); ?> /> Он
    12.     <input type="radio" name="sex" value="2" <?php if($user['sex'] == 2) echo('checked '); ?> /> Она
    13. </form>
    Если кнопок будет до фига и заранее неизвестно, какие будут варианты для выбора (зависят от б.д., например) - то при отображении всех этих кнопок сравниваешь значение каждой с тем, которое в б.д., которое пользователь ранее отметил.

    PHP:
    1. <?php
    2. // ...
    3. $sql = "SELECT * FROM `users` WHERE `id` = {$userId}";
    4. $res = mysql_query($sql) or exit(mysql_error());
    5. if(mysql_num_rows($res) > 0)
    6.     $user = mysql_fetch_assoc($res);
    7. else
    8.     exit('Wrong user id');
    9.  
    10. $sql = "SELECT * FROM `sex_variants`";
    11. $res = mysql_query($sql) or exit(mysql_error());
    12. if(mysql_num_rows($res) > 0) {
    13.     while($row = mysql_fetch_assoc($res)) {
    14. ?>
    15.     <input type="radio" name="sex" value="<?php echo($row['sex_id']); ?>" <?php if($row['sex_id'] == $user['sex']) echo('checked '); ?> /> <?php echo($row['sex_text']); ?>
    16. <?php
    17.     }
    18. }
    19. ?>
     
  8. maxmsmax

    maxmsmax Активный пользователь

    С нами с:
    1 ноя 2011
    Сообщения:
    8
    Симпатии:
    0
    Спасибо, разобрался !
    Выражаю благодарность ....