Newsgroup: it.comp.www.php
Titolo: Problema con checkbox

Salve ho il seguente problema e cioe' ho una form con diverse checkbox aventi
naturalmente lo stesso nome ora come faccio a eseguire una query su un database
che mi cancelli tutti gli elementi selezionati con le checkbox?
-- 
Posted from 
ppp-229-176.26-151.libero.it
 [151.26.176.229] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG


Mi sembra di aver già provato...
Pero' ho visto che se hai + checkbox con lo stesso nome a php arriva
soltanto la variabile contenente il valore dell'ultima checkbox cliccata, e
non un array con tutti i valori delle checkbox selezionate...
Ciao
Alex

dai come nome del CeckBox ..l'id del record.. e poi con un ciclo (for) .. ti
scorri l'array .. lanciando le delete.
--
CIAO!
Gusher

 scorri l'array .. lanciando le delete.
Ho provato ma non funziona...
Mettiamo che hai 3 checkbox:
<input type=checkbox name=variabile value=tizio>
<input type=checkbox name=variabile value=caio>
<input type=checkbox name=variabile value=sempronio>
E clicchi prima su tizio poi caio poi sempronio (tutte e tre selezionate)
nello script php al quale invii il modulo ti ritroverai con una $variabile
che contiene "sempronio" e non un array con tutte e tre...
Alex

che mi cancelli tutti gli elementi selezionati con le checkbox?
le checkbox devono essere di questo tipo:
<input type="checkbox" name="nome[]" value="<? echo $valore; ?>"
Cioe', il nome è un vettore.
Lo script che elaborerà il tutto, sarà del tipo:
if ($nome):
		foreach ($nome as $val) { 
			# fai quello che vuoi
		} 
endif;
ciao
Buttha

soltanto la variabile contenente il valore dell'ultima checkbox cliccata
Si', se usi il nome di una variabile singola.
Se vuoi che PHP riceva un array, devi mandargli il nome di un array.
<INPUT TYPE="CHECKBOX" NAME="pizza[]" VALUE="peperoni"> Con peperoni
<INPUT TYPE="CHECKBOX" NAME="pizza[]" VALUE="piccante"> Salame picc.
<INPUT TYPE="CHECKBOX" NAME="pizza[]" VALUE="doppia"> A doppia pasta
Leonardo
-- 
And where the black and corkscrew towers climb
Lost and athirst the ragged pack abides,
Old as the aeons, trapped in tombs of time,
Sailing the tortuous temporal tides...

ho capito, và!!
//stampa le checkbox con nome "C$riga[0]" (C è un esempio)
//$riga[0] è l'id selezionato dal database come si vede dal codice
$sql="select id, nome from tabella order by nome";
$result = mysql_query($sql, $conn)
	or die("Impossibile interrogare il database");
print "<form action=\"".getenv('SCRIPT_NAME')."\" method=\"post\">";
print "<table align=center>\n";
array($riga);
while($riga=mysql_fetch_row($result))
	{
	print "<tr>";
	print "<td>".$riga[1]."</td>\n";
	print "<td align=center><input type=\"checkbox\" name=\"C$riga[0]\"
value=\"Y\"></td>\n"; 
	print "</tr>";
	}
print "</table>";
print "<p align=center><input type=\"submit\" name=\"Modifica\"
value=\"Modifica\"></p>"; 	print "</form>";
//POI, QUANDO RICARICHI LO SCRIPT AVRAI variabili di nome C1, C2, C3 
//(insomma, gli id di tizio, caio e sempronio):
if(isset($Modifica)&&$Modifica=="Modifica")
	{
	while (list ($key, $val) = each ($HTTP_POST_VARS))
		{
		if($key!="Modifica")
			{
			$trans=array("C" => "");
			$sql = "drop from tabella where id = '".strtr($key, 
$trans)."'";
			if(!($rows=mysql_query ($sql, $conn)))
				die("pluto");
			}
		}
    	exit();
	}

|Mettiamo che hai 3 checkbox:
|<input type=checkbox name=variabile value=tizio>
|<input type=checkbox name=variabile value=caio>
|<input type=checkbox name=variabile value=sempronio>
|E clicchi prima su tizio poi caio poi sempronio (tutte e tre selezionate)
|nello script php al quale invii il modulo ti ritroverai con una $variabile
|che contiene "sempronio" e non un array con tutte e tre...
1. Come dice Leonardo, se invece usi name="variabile[]" crea array che è una
meraviglia.
2. Usa sempre le virgolette per delimitare gli attributi dei tag html, e ti
eviterai problemi (prova un po' <input type=checkbox name=variabile
value=Maria Teresa> e scopri che succede!)
Cia

 value=Maria Teresa> e scopri che succede!)
beh, questo lo sapevo dai :-)))
Alex