update запис with checkbox

vasilev

Registered
здравейте ,
опитвам се да подкарам една форма с checkbox да ъпдейтва полето approved от no на yes . извежда ги резултатите но нещо не ги ъпдейтва .

Код:
<script type="text/javascript">  
 function check(checkboxid) {  
 var checkbox = document.getElementByName(checkboxname );
 document.getElementById(checkboxid).checked = "checked";  
 }  
</script>
.
..
Код:
 <?php 
	$user = mysql_query("select user from users where id='$_SESSION[user_id]'");
	list($old) = mysql_fetch_row($user);
	$user_name = substr($old,0,9);
	$pub = mysql_query("SELECT * FROM events WHERE user='$user_name' and approved='no'");
	if (mysql_num_rows($pub) == 0) // table is empty
    echo '<ul><li>Няма чaкащи заявки!</li></ul>';
else
{
    echo '<ul>';
	$i=0;
    while(list($num, $user ,$client_phone, $client_email) = mysql_fetch_row($pub))
	{
		$i++;
        echo "
		<a onclick='javascript:check(\"checkbox$i\")'>$client_email</a>
		<input type='checkbox' id='checkbox$i' name='app' value='$num' /><br>
		";
    }
    echo '</ul>';
    echo '<center><input type="submit" value="Одобри" class="button"></center>';
}

if (isset($_POST['app'])) 
        {                       
 $update = mysql_query("update events set approved='yes' where num='$num'");
 $msg = 'Вие одобрихте заявката!';
        }

?>


моля за съдействие
 
Опитай така:

[js]
<script type="text/javascript">
function check(checkboxid) {
document.getElementById(checkboxid).checked = !document.getElementById(checkboxid).checked;
}
</script>
[/js]
 
Не разбрах! Формата не се събмитва, чекбокса не се чеква или заявката ти не актуализира полето. В PHP кода не виждам къде присвояваш стойността на $num:

PHP:
if (isset($_POST['app']))
{                       
         $num = (int) $_POST['app'];
         $update = mysql_query("update events set approved='yes' where num='$num'");
         $msg = 'Вие одобрихте заявката!';
}
 
подкарах го :)
цялата простотия идва от num - така се казва полето в което се записва номера .. а не id :)


Код:
echo '<ul>';
	$i=0;
    while(list($num, $user ,$client_phone, $client_email) = mysql_fetch_row($pub))
	{
		$i++;
        echo "
		 $num   <a onclick='javascript:check(\"checkbox$i\")'>$client_email</a>
		<input type='checkbox' id='checkbox$i' name='upd' value='$num' /><br>
		";
    }
    echo '</ul>';
    echo '<center><input type="submit" value="Одобри" class="button"></center>';
}

if (isset($_POST['upd']))
{                       
         $num = intval($_POST['upd']);
         $update = mysql_query("update `events` set `approved`='yes' where `num`=$num");
         $msg = 'Вие одобрихте заявката!';
		 echo '<meta http-equiv="refresh" content="1;url=index.php">';
		 echo $msg;
}
 
Почти си го направил. Само дето името на чекбокса трябва да е уникално и в ъпдейта трябва да повториш цикъла.

HTML:
 <input type='checkbox' id='checkbox$i' name='app[color=red]$i[/color]' value='$num' />

вместо това:
if (isset($_POST['app']))
{
$update = mysql_query("update events set approved='yes' where num='$num'");
$msg = 'Вие одобрихте заявката!';
}

използвай нещо такова:
PHP:
$msg = "";
for ($i=0; $i<=100; $i++) {
     $num = (isset($_POST['app'.$i])) ? (int)$_POST['app'.$i] : 0;
     if ($num>0)
        {              
         $update = mysql_query("update events set approved='yes' where num='$num'");
         $msg .= 'Вие одобрихте заявка '.$num.' !';
        } 
}
 

Back
Горе