Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2014, 18:41   #1
lingvo
 
Регистрация: 16.11.2014
Сообщений: 5
По умолчанию Обработка чекбоксов

Добрый вечер.
Не могу решить проблему с отправкой чекбоксов. Обратная отправляет только последний чекбокс. Уже двое суток ковыряюсь в php не могу найти проблему
Вот кусок кода отвечающий за отправление письма
Вот сама обратная связь
http://postovoy.net/22.html

PHP код:
function adds($vars) {
    global 
$form;
    
$adds $form['cfg']['adds'];
    foreach(
$adds as $key => $opts) {
        if(
is_string($key)) {
            
$one = array();
            
$two = array();
            foreach(
$opts as $i => $val) {
                if(isset(
$_POST[$val])) {
                  
$one[] = '%%'.$val.'%%';
                  
$two[] = $_POST[$val];
                }
            }
           
$vars[$key] = str_replace($one$two$vars[$key]);
        }
    }
       return 
$vars;
}
/*
 * парсер шаблона
 */
 
function tpl($vars) {
    
$tpl 'tpl/'.$vars['name'].'.tpl';
    if(
file_exists($tpl)) {
     
$template file_get_contents($tpl);
        foreach(
$vars['getdata'] as $name => $data) {
            
$template str_replace(array("%%".$name.".title%%""%%".$name.".value%%"), array($data['title'], $data['value']), $template);
        }
        return 
$template;
    }
     else {
      return 
false;
    }
 } 
Если выводить без шаблона (без
Код:
return $template;
), то выводит через данный код

PHP код:
        if(mb_strlen(trim($sb['body'])) < 10) {
          if(isset(
$form['cfg']['title']))
              
$sb['body'] .= $form['cfg']['title']."\r\n\r\n";
          foreach(
$getdata as $name => $data) {
              
$sb['body'] .= $data['title'].": ".$data['value']."\r\n";
          }
          if(
$form['cfg']['referer'])
              
$sb['body'] .= "\r\n\r\n\r\n\r\n".$ref;
      } 

Последний раз редактировалось lingvo; 16.11.2014 в 19:07.
lingvo вне форума Ответить с цитированием
Старый 16.11.2014, 19:43   #2
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

Где HTML код формы?
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru
grominfo вне форума Ответить с цитированием
Старый 16.11.2014, 19:59   #3
lingvo
 
Регистрация: 16.11.2014
Сообщений: 5
По умолчанию

Как пример чекбоксов с сайта
Код HTML:
<form action="" name="form-1">
<div class="form-v"><input value="71" class="radio" id="check49" name="check[]" type="checkbox"><label for="check49" class="check_label">7.1.</label></div>
<div class="form-v"><input value="72" class="radio" id="check50" name="check[]" type="checkbox"><label for="check50" class="check_label">7.2. </label></div>
<div class="form-v"><input value="73" class="radio" id="check51" name="check[]" type="checkbox"><label for="check51" class="check_label">7.3.  </label></div>
 <input class="feedback" name="send" type="button" value="Отправить">
</form>

Последний раз редактировалось lingvo; 16.11.2014 в 20:03.
lingvo вне форума Ответить с цитированием
Старый 16.11.2014, 21:08   #4
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

Не вижу, где у тебя в PHP обрабатывается массив чекбоксов $_POST["check"]

во-вторых, последний чексбокс передается лишь по причине, если ты где-то ошибся в HTML коде, и не поставил квадратные скобки []
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru
grominfo вне форума Ответить с цитированием
Старый 17.11.2014, 05:58   #5
lingvo
 
Регистрация: 16.11.2014
Сообщений: 5
По умолчанию

Цитата:
Сообщение от grominfo Посмотреть сообщение
Не вижу, где у тебя в PHP обрабатывается массив чекбоксов $_POST["check"]

во-вторых, последний чексбокс передается лишь по причине, если ты где-то ошибся в HTML коде, и не поставил квадратные скобки []
В примере не весь кусок кода. Он вставляется выше,

PHP код:
form['form-1'] = array(
    
'fields' => array(
        
'tell' => array(
            
'title' => 'Телефон',
            
'validate' => array(
                
'preg' => "/^((8|\+)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{5,10}$/",
                
'minlength' => '5',
            ),
        ),
        
'name' => array(
            
'title' => 'Имя',
            
'validate' => array(
                
'preg' => '%[A-Z-a-zА-Яа-я\s]%',
                
'minlength' => '3',
                
'maxlength' => '35',
            ),
        ),
        
'check' => array(
            
'title' => 'chek',
            ),
        ),
    ), 
lingvo вне форума Ответить с цитированием
Старый 17.11.2014, 08:46   #6
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

а вы учли, что check[] - это массив, и обрабатывать его нужно тоже как массив?
вы посмотрите через var_dump что вам в POST приходит ..и попробуйте мысленно по своему алгоритму прогнать для этих данных....
... что то мне подсказывает
Код:
 $two[] = $_POST[$val];
что в этой строке должны появится индекса...... ибо для check[] -добавятся $_POST['check'][0]; как то так....
причем они передаются только если чек выбран ..

Последний раз редактировалось ADSoft; 17.11.2014 в 08:49.
ADSoft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с выводом сообшения чекбоксов youngcoder PHP 2 03.12.2012 04:58
Обработка дин чекбоксов nikita33321 PHP 0 07.10.2012 14:07
Обработка чекбоксов и групп чекбоксов MCLotos Помощь студентам 0 11.08.2011 15:52
прозрачность чекбоксов reynevan Win Api 7 26.10.2010 14:39
Суммация значение чекбоксов inf-45 Общие вопросы Delphi 4 03.04.2010 13:11