Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: помогите с chekbox разобраться

Сообщения:  [1-7] 

 
 автор: Felix   (18.01.2006 в 06:20)   письмо автору
 
   для: Shorr Kan   (17.01.2006 в 12:23)
 

ЭВРИКА!!!! Спасибо Shorr Kan, помогло...

   
 
 автор: Shorr Kan   (17.01.2006 в 12:23)   письмо автору
 
   для: Felix   (17.01.2006 в 09:59)
 

Да, конечно.... в приемщике вот так:


<? 
for($i=0;$i<count($_POST['h_check']);$i++){ 
$key=key($_POST['h_check']); 
$box=$_POST['group'][$key]; 
if(isset(
$box)){print "чекбокс пришел, значение: ".$box."<br>";} 
else{print 
"чекбокс с ключом ".$key." не пришел, значения не скажу...<br>";} 
next($_POST['h_check']);
}
?>

   
 
 автор: Felix   (17.01.2006 в 09:59)   письмо автору
 
   для: Shorr Kan   (17.01.2006 в 08:46)
 

Ругается..... говорит вот что :

Warning: key() [function.key]: Passed variable is not an array or object in C:\www\admin\privileg.php on line 12
&#247;&#229;&#234;&#225;&#238;&#234;&#241; &#241; &#234;&#235;&#351;&#247;&#238;&#236; &#237;&#229; &#239;&#287;&#232;&#248;&#229;&#235;, &#231;&#237;&#224;&#247;&#229;&#237;&#232;&#255; &#237;&#229; &#241;&#234;&#224;&#230;&#243;...

Warning: key() [function.key]: Passed variable is not an array or object in C:\www\admin\privileg.php on line 12
&#247;&#229;&#234;&#225;&#238;&#234;&#241; &#241; &#234;&#235;&#351;&#247;&#238;&#236; &#237;&#229; &#239;&#287;&#232;&#248;&#229;&#235;, &#231;&#237;&#224;&#247;&#229;&#237;&#232;&#255; &#237;&#229; &#241;&#234;&#224;&#230;&#243;...

Warning: key() [function.key]: Passed variable is not an array or object in C:\www\admin\privileg.php on line 12
&#247;&#229;&#234;&#225;&#238;&#234;&#241; &#241; &#234;&#235;&#351;&#247;&#238;&#236; &#237;&#229; &#239;&#287;&#232;&#248;&#229;&#235;, &#231;&#237;&#224;&#247;&#229;&#237;&#232;&#255; &#237;&#229; &#241;&#234;&#224;&#230;&#243;...

Warning: key() [function.key]: Passed variable is not an array or object in C:\www\admin\privileg.php on line 12
&#247;&#229;&#234;&#225;&#238;&#234;&#241; &#241; &#234;&#235;&#351;&#247;&#238;&#236; &#237;&#229; &#239;&#287;&#232;&#248;&#229;&#235;, &#231;&#237;&#224;&#247;&#229;&#237;&#232;&#255; &#237;&#229; &#241;&#234;&#224;&#230;&#243;...

Warning: key() [function.key]: Passed variable is not an array or object in C:\www\admin\privileg.php on line 12
&#247;&#229;&#234;&#225;&#238;&#234;&#241; &#241; &#234;&#235;&#351;&#247;&#238;&#236; &#237;&#229; &#239;&#287;&#232;&#248;&#229;&#235;, &#231;&#237;&#224;&#247;&#229;&#237;&#232;&#255; &#237;&#229; &#241;&#234;&#224;&#230;&#243;...

И так бесконечно.....

   
 
 автор: Shorr Kan   (17.01.2006 в 08:46)   письмо автору
 
   для: Felix   (17.01.2006 в 08:02)
 

Нет, вы не поняли... У вас есть вот такой участок кода:


<?
while($rs mysql_fetch_array($query)) 
    { 
        print
"<tr><td align='center'>".$_GET['user']."</td>"
        for(
$i=3$i<$var$i++) 
        { 
        
$r mysql_field_name($query,$i); 
        print
"<td align='center'><input type='checkbox' name='group[$r]' value='checked' ".$rs[$r]."></td>"
        } 
    } 
?>


Превратите его в:


<?
while($rs mysql_fetch_array($query)) 
    { 
        print
"<tr><td align='center'>".$_GET['user']."</td>"
        for(
$i=3$i<$var$i++) 
        { 
        
$r mysql_field_name($query,$i); 
        print
"<td align='center'><input type='checkbox' name='group[$r]' value='checked' ".$rs[$r]."></td>"
?><input type='hidden' name='h_check[<?print $r;?>]'><?
        

    } 
?>


А в приемщике:

<?
for($i=0;$i<count($_POST['h_check']);$i++){
$key=key($_POST['h_check'][$i]);
$box=$_POST['group'][$key];
if(isset(
$box)){print "чекбокс пришел, значение: ".$box."<br>";}
else{print 
"чекбокс с ключом ".$key." не пришел, значения не скажу...<br>";}
}
?>

   
 
 автор: Felix   (17.01.2006 в 08:02)   письмо автору
 
   для: Shorr Kan   (17.01.2006 в 07:09)
 

Так не пойдет потому что я не знаю сколько будет их (чекбоксов) в будущем потому как их количество генерируется в зависимости от количества полей в таблице mysql.

   
 
 автор: Shorr Kan   (17.01.2006 в 07:09)   письмо автору
 
   для: Felix   (17.01.2006 в 05:56)
 

Передавайте при помощи hidden массив всех наличествующих checkbox. А при приёме данных - сравнивайте этот масси - с пришедшими checkbox.

   
 
 автор: Felix   (17.01.2006 в 05:56)   письмо автору
 
 

Подскажите пож. как сделать так чтобы чекбоксы с которых снята галочка тоже обновлялись в базе данных, и если галочки сняты со все чекбоксов то не ругался бы "foreach()" в скрипте.


<?
include("../autoriz/config.php");
if(isset(
$_POST['go']))
{
$group $_POST['group'];
foreach(
$group as $key => $val)
{
mysql_query("UPDATE userlist SET ".$key."='".$val."' WHERE name='".$_POST['user']."'"$dbcnx) or die(MySQL_Error());
}
}
$query mysql_query("SELECT name FROM userlist");
while(
$res mysql_fetch_array($query))
    {
    print
"<a href='privileg.php?user=".$res['name']."'>".$res['name']."</a><br>";
    }
if(isset(
$_GET['user']))
{
print    
"<form action='privileg.php' method='POST'>
        <table border='1' width='100%'>
        <tr><td align='center'>&#200;&#236;&#255;</td>"
;
$query mysql_query("SELECT * FROM userlist");
$var mysql_num_fields($query);
for(
$i=3$i<$var$i++)
{
$res mysql_field_name($query,$i);
    print
"<td align='center'>".$res."</td>";
}
print
"</tr>";
$query mysql_query("SELECT * FROM userlist WHERE name='".$_GET['user']."'");
while(
$rs mysql_fetch_array($query))
    {
        print
"<tr><td align='center'>".$_GET['user']."</td>";
        for(
$i=3$i<$var$i++)
        {
        
$r mysql_field_name($query,$i);
        print
"<td align='center'><input type='checkbox' name='group[$r]' value='checked' ".$rs[$r]."></td>";
        }
    }
print
"</tr>";
    print
"</table><br><input type='submit' name='go' value='&#209;&#238;&#245;&#240;&#224;&#237;&#232;&#242;&#252;'><input type='hidden' name='user' value=".$_GET['user']."></form>";
}
?>

   

Сообщения:  [1-7] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования