Newsgroup: it.comp.www.php
Titolo: checkbox, novizio

Ciao a tutti, 
sto cercando di imparare, abbiate pazienza. 
Ho una tabella dove per ogni riga inserisco un checkbox con valore del 
campo precedente: 
print "</div></td>\n"; 
	print "<td><div align=\"center\">"; 
		echo $row["id"]; 
	print "</div></td>\n"; 
	print "<td><div align=\"center\">"; 
	print "<input type='checkbox' name='del[]' value=";  
echo $row['id']; 
		print "\" class=\"checkbox\">"; 
	print "</div></td>\n"; 
 
e poi: 
if (count($del) > 0) { 
	for ($i=0;$i<count($del);$i++) { 
	$result[$i] = mysql_query("DELETE FROM logins WHERE id = 
'$del[$i]'"); 
	} 
} 
 
Perchè non ho valore nella variabile $del?, count($del) è sempre zero 
Grazie. 
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 if (count($del) > 0)
$_POST['del'] forse ?
Mauro

 Perchè non ho valore nella variabile $del?, count($del) è sempre zero 
http://www.php.net/manual/en/security.globals.php
-- 
I am what I am, I do what I can
L'uomo, conscio di sbagliare, persevera.

 $_POST['del'] forse ? 
ho provato count($_POST['del[]']) e count(S_POST['del'] 
ma è sempre zero! 
Grazie 


 ma è sempre zero! 
Utilizza $_GET se il metodo di invio della form e' GET oppure $_POST se
il metodo di invio e' POST. Se passi i parametri via query string
allora utilizza $_GET
-- 
I am what I am, I do what I can
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C


 allora utilizza $_GET 
 
Grazie, adesso: echo "conteggio".count($_GET['del']); 
mi restituisce il numero di checkbox che ho selezionato, 
adesso... devo mettere mano alla query per passare i giusti valori di id: 
 
for ($i=0;$i<count($_GET['del']);$i++) { 
	$result[$i] = mysql_query("DELETE FROM logins WHERE 
id='$del[$i]'"); 
	} 
 
devo trovare l'array da inserire ...id='$del[$i] con i valori giusti di
id. 
Grazie 
Rigel 


 > allora utilizza $_GET  
 
Ho usato: 
$del=count($_GET['del']); 
if (count($del) > 0) { 
	for ($i=0;$i<count($del);$i++) { 
	$del=stripslashes($_GET['del'][$i]); 
	$result[$i] = mysql_query("DELETE FROM logins WHERE id='$del'"); 
	} 
} 
 
Funziona, cancellando il record, ma se ne seleziono due o più mi cancella 
solo l'ultimo. 
Mi impegno ma: With a little help from my friends? 
grazie 


 $del=stripslashes($_GET['del'][$i]);
se ridefinisci $del ricordati che la condizione del ciclo risponderà di
conseguenza.. potrebbe portarti a operazioni incoerenti..
-- 
www.iuz-lab.info

 conseguenza.. potrebbe portarti a operazioni incoerenti.. 
 
Grazieeeeeeee. Funziona alla grande. 


 Grazieeeeeeee. Funziona alla grande.  
Funzionava...avevo provato a cancellare e andava alla grande, 
perchè adesso mi da: 
Warning: Variable passed to each() is not an array or object in /home/
salvo/public_html/auth/admin/log.php on line 116   ?????????????????? 
Strano, non credi? 
rigel 


   
fai un print_r($_GET['del']); e vedi cosa restituisce, cmq se aggiorni la
pagina senza voler cancellare nulla è normale che in $_GET['del'] non ci
sia nulla.. per ovviare metti subito prima del while() un
if(is_array($_GET['del'])) 
-- 
www.iuz-lab.info

 if(is_array($_GET['del'])) 
 
Grazie. In effetti il warning compariva quando per la prima volta leggevo 
la pagina, e dopo un'operazione di delete non compariva piů. 
Seguendo il tuo consiglio č tutto a posto. 
Sto imparando, ma con persone come te ci si invoglia di piů. 
A buon rendere. 
Rigel  
