Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: ОООчень срочно нужна помосч! ГОРИТ ПРЯМ!
Форумы портала PHP.SU » PHP » Программирование на PHP » ОООчень срочно нужна помосч! ГОРИТ ПРЯМ!

Страниц (1): [1]
 

1. CyberBoss - 10 Февраля, 2007 - 20:46:09 - перейти к сообщению
короче! у меня в форме передаются 275 чекбоксов
эти чекбоксы генерируются php скриптом!
и поля 'name=' у них имеют вид
rub_$i, где $i-значение которое передают эти чекбоксы

вощем так:

CODE (text):
скопировать код в буфер обмена
  1.  
  2. while( $da=@mysql_fetch_array($rst))
  3.                  {
  4.                    $i=$da[rub_id];
  5.                    $nam=$da['caption'];
  6.                    echo "&nbsp;&nbsp;&nbsp;&nbsp;<input id='$i' type='checkbox'  name='rub_$i' value='$i' onClick=''> $nam <br>";
  7.                   }
  8.  


теперь я получаю все эти чекбоксы в скрипт!
ВОПРОС! КАК ЗНАЧЕНИЕ ЧЕКБОКСОВ ЗАНЕСТИ В ФАЙЛ?

очевидно нужен цикл чтобы не перебирать все их 275 штук вручную!
НО! ТУТ ПРОБЛЕМА!
цикл примерно такой:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. for ($i=1;$i<276;$i++){
  3.       if($"rub_.$i"){          //т.е. надо каким то образом проверить
  4.       fputs ($c, "$in");     //отмечен ли rub_.$i-й чекбокс
  5.        }
  6. }
  7.  


как осуществить проверку? как собрать состовную переменную? или может ещё какойнибудь способ есть?\n\n(Добавление)
допустим $rub_15 он распознаёт что есть передан такой чекбокс! его можно занести в массив!
НО! ИХ 275 ШТУК!
колебются от $rub_1 до $rub_275
надо вот это дело автоматизирывать, чтобы не вручную заносить каждый $rub_№

2. Jakeryf - 10 Февраля, 2007 - 23:57:12 - перейти к сообщению
есть такая функция eval
в твоём случае
CODE (text):
скопировать код в буфер обмена
  1.  
  2. for ($i=1;$i<276;$i++)
  3. {
  4.   eval("*$rub[$i] = *$rub_$i;"); // * - обозначает обратный слеш, форум экранирует
  5.   if($rub[$i])
  6.   {
  7.     fputs ($c, "$in"); //отмечен ли rub_.$i-й чекбокс
  8.   }
  9. }
  10.  
3. CyberBoss - 11 Февраля, 2007 - 05:18:49 - перейти к сообщению
СУПЕР! ИСКРЕННЕ БЛАГОДАРЮ!
4. evgenijj - 11 Февраля, 2007 - 16:12:53 - перейти к сообщению
Нет необходимости проверять, отмечен ли checkbox 1,2,3,4,5,... Если он не отмечен, то эта переменная будет неопределена в скрипте, обрабатываещем форму
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. while( $item = mysql_fetch_array($res) )
  4. {
  5.     $id = $item["id"];
  6.     $name = $item["name"];
  7.     echo "<input type='checkbox' name='ids[]' value='".$id."' />".$name."<br/>";
  8. }
  9. ?>
  10.  

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. foreach ( $_POST["ids"] as $value )
  4. {
  5.     fwrite ( $r, $value )    // Записываем в файл ID
  6. }
  7. ?>
  8.  

 

Powered by ExBB FM 1.0 RC1