selezionare record database con checkbox

nephilim89

Utente Attivo
24 Mar 2010
64
5
0
Ciao! ho cercato qualche guida ma non mi ha aiutato niente.avete presente la gestione sezioni di joomla?? bene,sto cercando di fare una cosa simile ma ho dei problemi.

nella mia pagina, in alto è inclusa una "toolbar.php" che permette la navigazione,che nn funziona con pagine,ma con funzioni :
PHP:
if( isset( $_GET['action'] ) )
{
   switch( $_GET['action'] )
   {
        case 'list':
        default:
            lista();
        break;

        case 'delete':
             delete();
        break;

   }
}
cioè a seconda di ciò che viene cliccato richiama una funzione diversa dal file function.php:
PHP:
function lista()
{
    $query="SELECT * FROM sezioni";
    if($r=mysql_query($query))
    {
        echo '<table border="0" width="100%">
        <tr bgcolor="#ADD8E6">
        <td width="30"></td>
        <td>Nome</td>
        <td>ID</td>';
        while($array = mysql_fetch_array($r))
        {
            echo '<tr bgcolor="#E0FFFF">
            <td>
problema--><form action="index.php?page=gestsez&action=delete" method="post">
            <input type="checkbox" name="check" value=???></form>
            </td>
            <td><a href="index.php?page=articoli&id='.$array['IDsezione'].'">'.$array['Nome'].'</a></td>
            <td>'.$array['IDsezione'].'</td></tr>';
        }
        echo '</table>';
        mysql_free_result($r);
    }
    else echo mysql_error();
}

function delete()
{
$querydelete="DELETE FROM `sezioni` WHERE `IDsezione` = "valore del checkbox" ";
$delete=mysql_query($querydelete);
echo "delete";
}
in pratica la funzione lista() crea una tabella che contiene tutti i campi dalla tabella "sezioni" del db,e accanto a ogni sezione una checkbox.questa funzione funziona XD bene.
però come faccio,partendo da questa lista,a selezionare un determinato record su cui usare la funzione delete()?
un altra domanda:nella navigazione non funziona il default,sapete perchè??
grazie
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
se ti interessa eliminare un particolare record, secondo me, devi mettere al posto di ???

......
<input type="checkbox" name="check" value=???></form>
......

<input type="checkbox" name="check" value="$array['ID_del_record']"></form>

però non vedo l'istruzione pr leggerlo (tipo)
$da_deletare=$_POST['check']
 

nephilim89

Utente Attivo
24 Mar 2010
64
5
0
ciao! $_POST['check'] dovrebbe essumere il valore della riga nel momento in cui ci clicchi sopra e resta il segna di spunta.non c'è un input di tipo submit per inviare i valori
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
...$_POST['check'] dovrebbe essumere il valore della riga...
non è quello che intendevo, ma se poi non lo leggi tale valore, come fa la funzione a "sapere" cosa devi eliminare?

con molta probabilità devi mettere

$querydelete="DELETE FROM sezioni WHERE IDsezione = '".$_POST['check']."'";


dimenticavo
con tutti quuei GET senza alcun controllo rischi iniezioni malevole
 

nephilim89

Utente Attivo
24 Mar 2010
64
5
0
guarda ho messo $array['IDsezione'] nel value del checkbox e la query come mi hai detto. ma quando eseguo mi dice che l'indice $_POST['check'] non è definito.
ho provato anche a assegnare il valore di $array['IDsezione'] a una variabile,e mettere questa variabile in value dei checkbox.

funziona solo se aggiungo un pulsante di tipo submit e nella funzione controllo la pressione di tale pulsante.cosi funziona.altrimenti nada!
come fare?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
fai una prova (senza il tasto submit) per vedere se $_POST['check'] viene trasmesso mettendo

PHP:
if( isset( $_GET['action'] ) ) 
{ 
   var_dump($_POST['check']);
   switch( $_GET['action'] ) 
   { 
//eccetera.......

se ti da null vuol dire che non viene trasmesso e allora si deve cercare il perche, se invece ti da il valore giusto si deve capire perche non entra nella funzione, so che le variabili interne ad una funzione non si possono leggere all'esterno, ma non mi ricordo se vale anche il contrario
intanto fai questa prova e poi sappi dire
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
scusa dimenticavo: non avendo messo messo il pulsante di submit hai messo uno script js che alla selezione del checkbox ti invii il form?
perche se non c'è qualcosa che invia, puoi solo divertirti a selezionare i check
 

nephilim89

Utente Attivo
24 Mar 2010
64
5
0
ciao
scusa dimenticavo: non avendo messo messo il pulsante di submit hai messo uno script js che alla selezione del checkbox ti invii il form?
perche se non c'è qualcosa che invia, puoi solo divertirti a selezionare i check

ciao,alla fine è solo questo il problema. ho scoperto ora che si può fare solo col javascript. se clicco invia il form. da quello che ho letto dovrebbe essere:
PHP:
<input type="checkbox" name="checkbox" onclick="document.nomeform.submit();" value="$array['IDsezione']">
ma ovviamente non funziona
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ti invio schematicamente come faccio io, solo che al posto della chekbox ho una select

PHP:
<script type="text/javascript">
<!--
function SelectPost()
{
	document.modulo.method="post";
	document.modulo.action="index.php?page=gestsez&action=delete";
	document.modulo.target="_parent";
	document.modulo.submit();
}
-->
</script>

<?php
//eccetera.....
echo "<form  name=\"modulo\">";//intanto terrei il tag form fuori dal while
while($array = mysql_fetch_array($r)){ 
	echo "<input type=\"checkbox\" name=\"check\" onChange=\"SelectPost()\" value=\"".$array['ID_del_record']."\"></>"
}//fine while
echo "</form>";
//eccetera......
?>

prova ad adattarla e vedere se ti funzia
 

nephilim89

Utente Attivo
24 Mar 2010
64
5
0
aaah!! ci siamo quasi!!
cosi funziona! però mi esegue la funzione delete solamente spuntando il checkbox,quindi con un click elimina.
invece con il checkform checkato, dovrebbe assumerne il valore da gestire poi nella funzione in un secondo momento.cosi:
immaginepmt.png
[/URL][/IMG]

ti ringrazio per la pazienza!0:)
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ma allora hai un pulsante di submit?
se prima selezioni e poi devi premere il pulsante con la X, il pulsante con la x rappresenta un submit?
dimenticavo: in questo caso se prima selezioni e poi premi X per cancellare, puoi selezionare più checkbox, allaora il nome dei check deve diventare diverso l'uno dall'alatro
 
Ultima modifica:

nephilim89

Utente Attivo
24 Mar 2010
64
5
0
se prima selezioni e poi devi premere il pulsante con la X, il pulsante con la x rappresenta un submit?
in effetti dovrebbe essere cosi,ma il pulsante con la x è una semplice immagine.che per di più è inclusa da un altro file.
il tutto è strutturato cosi:
-gestsezioni.php è il file principale che switcha le funzioni,
-le funzioni sono contenute in function.php
-e i link su cui fare lo switch sono in toolbar.php,la barra che vedi con le immagini (tra cui la X)

Quindi dovrei avere il form con i checkbox da una parte,e il submit(immagine X) in un altro file.se si può fare cosi abbiamo risolto!

per il submit con immagine basta fare <input type="image" src="url"> , ma per dividere il form in 2 file diversi?
se proprio non si può fare cerco di unire tutto in un file
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
non credo che si possa dividere, il pulsante di submit deve essere dentro i tag form.
invece per mettere l'mmagine nel subimt non ci sono problemi
provo a pensarci, poi ti informo
 
Discussioni simili
Autore Titolo Forum Risposte Data
Federico B. [SQL] Selezionare righe database in base ad il record maggiore per ogni id Database 0
S Selezionare ultimo record di una sotto query MySQL 27
M Selezionare un record da una tabella continua MS Access 0
B Selezionare un'immagine e salvare la selezione Photoshop 3
M Come selezionare e deselezionare radiobutton con jquery jQuery 1
Y Vorrei selezionare un colore di sfondo per una pagina web Javascript 0
S Upload file senza doverlo selezionare PHP 2
S Selezionare e deselezionare checkbox Javascript 0
M [PHP] Selezionare immagini directory non presenti in db PHP 11
S [PHP] selezionare colonna tabella utilizzando un array PHP 1
S [PHP] Selezionare i campi non in comune con le altre colonne della tabella PHP 4
L [PHP] CHECKBOX DA SELEZIONARE IN UNA TABELLA PHP 4
S [PHP] selezionare colonne in comune con un altra tabella PHP 5
T selezionare terza colonna della relatica row Database 2
G [Javascript] Selezionare una checkbox in maniera condizionata Javascript 5
G [PHP] Selezionare OGGI anno precedente per query sql PHP 2
A [RISOLTO] PHP Selezionare tutti i file con stessa estensione PHP 2
otto9due Selezionare singoli giorni su datepiker jQuery 1
S [PHP] Selezionare dati in intervallo di tempo PHP 21
gandalf1959 Selezionare un intervallo tra due date, php e mysql PHP 2
M [PHP] selezionare dati da db e fare confronti PHP 0
L [PHP] selezionare righe di una tabella con le checkbox e cancellarle PHP 2
R [Photoshop] Selezionare elemento in immagine ed esportarlo Photoshop 3
S [PHP] Selezionare ultimo campo ed escludere doppioni PHP 16
S [PHP] Selezionare tutte le colonne meno due PHP 6
asevenx Selezionare elementi da un elenco in modo dinamico e inviarli al database PHP 0
C selezionare distinti id e sommare uguali PHP 1
asevenx Realizzare modulo per selezionare elementi da una lista PHP 1
M Selezionare un risultato ogni 10 da select MySQL 4
L [php e mysql] selezionare sia i selezionati e i non selezionati PHP 1
H Selezionare la versione di Access Runtime in base all' applicazione MS Access 0
H Selezionare la versione di Access Runtime in base all' applicazione MS Access 0
F Selezionare voce di menu attiva HTML e CSS 1
asevenx selezionare prossima data da database PHP 2
T selezionare un campo da un db con radio button PHP 0
M Tabella PHP con sorgente dati csv: selezionare le riche e compilare Form eMail PHP 1
P Impossibile selezionare il database PHP 7
P impossibile selezionare il database PHP 0
felino Selezionare le colonne con una certa condizione PHP 2
S Selezionare files con drag and drop prima di upload PHP 0
F selezionare puntatore google engine Javascript 0
L Selezionare query da menu a tendina MS Access 2
M Selezionare quantità spostando una "barra" Javascript 5
M Selezionare dati tra due tabelle Database 3
M Selezionare dati tra due tabelle PHP 1
F selezionare dati tra due tabelle e prendere max valori PHP 10
M Selezionare un campo alla volta su un ciclo while PHP 47
T selezionare dati da mysql mediante form PHP 12
D selezionare solo dati non presenti in entrambe le tabelle PHP 5
S Selezionare campi da una tabella,vincolati da un'altra tabella Database 4

Discussioni simili