За последние 24 часа нас посетили 53864 программиста и 1712 роботов. Сейчас ищут 913 программистов ...

Отправка выбраных checkbox-ов в базу даных.

Тема в разделе "PHP для новичков", создана пользователем prokuror_89, 12 фев 2011.

  1. prokuror_89

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

    С нами с:
    13 янв 2011
    Сообщения:
    26
    Симпатии:
    0
    Друзья я опять нуждаюсь в вашей помощи. У меня есть форма, где находится три checkbox-а:
    HTML:
    1. <form action="comment.php" method="post" name="form_com">                      
    2. <div>
    3. <input name="text" type="checkbox" class="radio" value="полная комплектация"  />
    4. <label>полная комплектация</label>
    5.  
    6.                            </div>                  
    7. <div>
    8. <input name="text" input type="checkbox" class="radio"  value="кожа" />
    9. <label>кожа</label>
    10. </div>
    11. <div>
    12. <input name="text" type="checkbox" class="radio" value="сервис"  />
    13. <label>сервис</label>
    14.  
    15.                            </div>    
    16. <p><input name="sub_com" type="submit" value="Коментувати"></p>
    17. </form>
    и обработчик этой формы:
    PHP:
    1.  
    2. <?php include ("blocks/bd.php");
    3. if (isset($_POST['text']))
    4. {
    5. $text = $_POST['text'];
    6. }
    7. if (isset($text)) {trim($text);  }
    8. else {$text = "";}
    9. if (empty($text))
    10. {
    11. exit ("<p>Вы ввели не всю информацию, вернитесь назад и заполните
    12. все поля. <br> <input name='back' type='button' value='Вернуться назад' onclick='javascript:history.back(1);'>");
    13. }
    14. $text = stripslashes($text);
    15. $text = htmlspecialchars($text);
    16. $result2 = mysql_query("INSERT INTO avto(text) VALUES('$text')",$db);
    17.  
    18. exit();
    19.  
    20. ?>
    21.  
    Проблема в том что когда отмечен один checkbox то все в порядке и значение заносится в базу данных, а когда несколько checkbox-ов отмечено то вносится почему то только последний. Помогите разобраться в чем проблема. Кстати в базу вносится в поле Text с типом text. Заранее благодарен.
     
  2. runner

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

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент
    1)для каждого checkbox атрибут name должен быть равен text[]
    HTML:
    1.  
    2. <input name="text[]" type="checkbox" class="radio" value="полная комплектация"  />
    3.  
    2) тогда в переменной $_POST['text'] будет массив выбранных значений - если конечно будет выбрано хотя бы одно значение
    3) так как $_POST['text'] массив, то обработку нужно изменить типа
    PHP:
    1.  
    2. if(isset($_POST['text'] ))
    3. {
    4.      $text='';
    5.      foreach($_POST['text'] as $value)
    6.      {
    7.            if($text=='')
    8.            {
    9.                  $text=$value;
    10.            }
    11.            else
    12.            {
    13.                   $text=$text.','.$value;
    14.            }
    15.      }
    16.      // здесь твой код добавления данных
    17. }
    18. else
    19. {
    20.      // ни один checkbox не отмечен
    21. }
    22.  
     
  3. prokuror_89

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

    С нами с:
    13 янв 2011
    Сообщения:
    26
    Симпатии:
    0
    Спасибо огромное. Все получилось.