|
|
|
| Подскажите пож. как сделать так чтобы чекбоксы с которых снята галочка тоже обновлялись в базе данных, и если галочки сняты со все чекбоксов то не ругался бы "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'>Èìÿ</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='Ñîõðàíèòü'><input type='hidden' name='user' value=".$_GET['user']."></form>";
}
?>
|
| |
|
|
|
|
|
|
|
для: Felix
(17.01.2006 в 05:56)
| | Передавайте при помощи hidden массив всех наличествующих checkbox. А при приёме данных - сравнивайте этот масси - с пришедшими checkbox. | |
|
|
|
|
|
|
|
для: Shorr Kan
(17.01.2006 в 07:09)
| | Так не пойдет потому что я не знаю сколько будет их (чекбоксов) в будущем потому как их количество генерируется в зависимости от количества полей в таблице mysql. | |
|
|
|
|
|
|
|
для: 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>";}
}?>
|
| |
|
|
|
|
|
|
|
для: 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
÷åêáîêñ ñ êëş÷îì íå ïğèøåë, çíà÷åíèÿ íå ñêàæó...
Warning: key() [function.key]: Passed variable is not an array or object in C:\www\admin\privileg.php on line 12
÷åêáîêñ ñ êëş÷îì íå ïğèøåë, çíà÷åíèÿ íå ñêàæó...
Warning: key() [function.key]: Passed variable is not an array or object in C:\www\admin\privileg.php on line 12
÷åêáîêñ ñ êëş÷îì íå ïğèøåë, çíà÷åíèÿ íå ñêàæó...
Warning: key() [function.key]: Passed variable is not an array or object in C:\www\admin\privileg.php on line 12
÷åêáîêñ ñ êëş÷îì íå ïğèøåë, çíà÷åíèÿ íå ñêàæó...
Warning: key() [function.key]: Passed variable is not an array or object in C:\www\admin\privileg.php on line 12
÷åêáîêñ ñ êëş÷îì íå ïğèøåë, çíà÷åíèÿ íå ñêàæó...
И так бесконечно..... | |
|
|
|
|
|
|
|
для: 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']);
}?>
|
| |
|
|
|
|
|
|
|
для: Shorr Kan
(17.01.2006 в 12:23)
| | ЭВРИКА!!!! Спасибо Shorr Kan, помогло... | |
|
|
|