campi checkbox

Gae58

Utente Attivo
26 Mar 2012
84
0
0
ci dev'essere un problema di collegamento, in quanto dopo aver selezionato il check, mi faccio visualizzare il dump ed il risultatao è questo:
PHP:
["lOA"]=> string(1) "0"

mi mette sempre 0
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
scusa una domanda nella variabile $lOA non si vede bene è un uno o una elle perche se è un uno in php i nomi di variabile non possono iniziare con un numero
 

Gae58

Utente Attivo
26 Mar 2012
84
0
0
Fatto, ma non è camboato nulla.

E' come se non avesse il collegamento al campo della tabella.

Sicuramente è una sciocchezza, ma non ho capito dove sbaglio
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
per prima cosa
prova a postare il form completo e come si valorizzano le eventuali variabili nei value cei campi di input.
delle volte (e non sarebbe la prima volta) l'errore nasce a monte
 

Gae58

Utente Attivo
26 Mar 2012
84
0
0
normalmente che si fa, faccio un copi e incolla oppure ti allego il file?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
intanto dipende da quanto lo scrip è lungo, poi puoi fare entrambe le cose (es copy/paste le parti essenziali es sensa vari css)
 

Gae58

Utente Attivo
26 Mar 2012
84
0
0
te lo invio spezzato perchè è lungo e potrebbe essere noioso da leggere.
La parte interessata è quella relativa agli Uffici.

PHP:
Quando richiamo questa pagina, se sono in variazione eseguoil codce qui sotto
PHP:
...
	} elseif (isset($_POST['Modifica'])){
		$cTipoAz = 'Modifica';
		$Campo = Ricerca( 'Uffici', $_POST['Prog'] );
			$lOA = $Campo[16] ? 'checked' : '' ;
...

Ricerca() fa ciò:
PHP:
Function Ricerca( $Tab, $Prog ) {
	$Conn = Connetti( true );
		// Costruisce la Query in relazione alla Tabella
		if ($Tab=='Assegnazioni') {
...
			} elseif ($Tab=='Uffici') {
				$cSql = "SELECT *, Comu.Descrizione AS cDesCo, Comu.Prov AS cProCo, Regi.Descrizione AS cDesRe   FROM Uffici
							LEFT OUTER JOIN Comuni AS Comu  ON Uffici.Comune = Comu.Progressivo
							LEFT OUTER JOIN Regioni AS Regi  ON Uffici.Regione = Regi.Progressivo
								WHERE Uffici.Progressivo = ?";
...

opo aver fatto ciò, c' il codice HTML, ti allego solo la parte del CHECK:
PHP:
<span class="Des">Accreditamento</span><?php Spazi(1);?>       <input type="checkbox" <?php echo $lOA; ?> class="Vis" name="lOA" value="<?php echo $Campo[16]; ?>" />

Clikkando su salva, richiama un'altra pagina web

Codice PHP:
PHP:
...
	} elseif (isset($_POST['Agg'])) {
		$lRis = Aggiorna( 'Uffici', $_POST );
...

La func Inserisci fa ciò:
PHP:
	Function Aggiorna( $Tab, $Var ) {
		$Conn = Connetti( true );
			// Costruisce la Query in relazione alla Tabella
			switch ($Tab) {
				case 'Assegnazioni':
...
				case 'Uffici':
					$cSql = 'UPDATE Uffici  SET Codice=?, Descrizione=?, Indirizzo=?, Comune=?, Cap=?, Regione=?, CodFiscale=?, PartitaIva=?, Telefono=?, 
							Fax=?, eMail=?, eMailAlternativa=?, Direttore=?, Intestazione=?, OrdineAccr=?, OAFunzionario=?, OACodice=? 
										WHERE Progressivo = ?';
					$aPara = array( $Var['Cod'], $Var['Des'], $Var['Ind'], $Var['Comu'], $Var['Cap'], $Var['Regi'], $Var['CoFi'], $Var['PaIv'], $Var['Tele'], 
									$Var['Fax'], $Var['eMa1'], $Var['eMa2'], $Var['Dire'], $Var['Inte'], $Var['lOA'], $Var['FuDe'], $Var['Codi'], $Var['Prog'] );
//var_dump($aPara);
					$cQry = null;
						$cQry = cQuery( $Conn, $cSql, $aPara );
...

Mi sa che altro non c'é
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
scusa ma sono un po' gnocco.
tu dici che non ti preleva i dati che dovrebbero essere inviati dalla (dalle?) checkbox, che immagino sia quella indicate nel codice
PHP:
<input type="checkbox" <?php echo $lOA; ?> class="Vis" name="lOA" value="<?php echo $Campo[16]; ?>" />
ma non vedo dove poi lo prelevi cioè un qualcosa del tipo

PHP:
$cek=$_POST['lOA'];
 

Gae58

Utente Attivo
26 Mar 2012
84
0
0
in
PHP:
$_POST['lOA']
c'è il contenuto della scelta fatta dall'utente

ed in
PHP:
Function Aggiorna( $Tab, $Var ) {
				case 'Uffici':
					$cSql = 'UPDATE Uffici  SET Codice=?, Descrizione=?, Indirizzo=?, Comune=?, Cap=?, Regione=?, CodFiscale=?, PartitaIva=?, Telefono=?, 
							Fax=?, eMail=?, eMailAlternativa=?, Direttore=?, Intestazione=?, OrdineAccr=?, OAFunzionario=?, OACodice=? 
										WHERE Progressivo = ?';
					$aPara = array( $Var['Cod'], $Var['Des'], $Var['Ind'], $Var['Comu'], $Var['Cap'], $Var['Regi'], $Var['CoFi'], $Var['PaIv'], $Var['Tele'], 
									$Var['Fax'], $Var['eMa1'], $Var['eMa2'], $Var['Dire'], $Var['Inte'], $Var['lOA'], $Var['FuDe'], $Var['Codi'], $Var['Prog'] );
					$cQry = null;
						$cQry = cQuery( $Conn, $cSql, $aPara );
					break;

o in
Function Inserisci( $Tab, $Var ) {
				case 'Uffici':
					$cSql = 'INSERT INTO Uffici (Codice, Descrizione, Indirizzo, Comune, Cap, Regione, CodFiscale, PartitaIva, Telefono, 
									Fax, eMail, eMailAlternativa, Direttore, Intestazione, OrdineAccr, OAFunzionario, OACodice) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)';
					$aPara = array( $Var['Cod'], $Var['Des'], $Var['Ind'], $Var['Comu'], $Var['Cap'], $Var['Regi'], $Var['CoFi'], $Var['PaIv'], $Var['Tele'], 
									$Var['Fax'], $Var['eMa1'], $Var['eMa2'], $Var['Dire'], $Var['Inte'], $Var['lOA'], $Var['FuDe'], $Var['Codi'] );
					$cQry = null;
						$cQry = cQuery( $Conn, $cSql, $aPara );
					break;
c'è il savataggio del dato.

Forse prima del salvataggio ci dev'essere un passaggio intermedio per il cambio del dato?
 

Gae58

Utente Attivo
26 Mar 2012
84
0
0
non se dico un sciocchezza, ma potrebbe dipendere dal default di quando creo la tabella, in quanto se metto 0 mi mette fisso zero, se metto null mi mette fisso null

E' possibile?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
mi è venuto un dubbio
metti due var_dump uno per $var e rimettilo per $apara
PHP:
<?php
function Aggiorna( $Tab, $Var ) { 
        var_dump($Var);
		$Conn = Connetti( true ); 
            // Costruisce la Query in relazione alla Tabella 
            switch ($Tab) { 
                case 'Assegnazioni': 
//... 
                case 'Uffici': 
                    $cSql = 'UPDATE Uffici  SET Codice=?, Descrizione=?, Indirizzo=?, Comune=?, Cap=?, Regione=?, CodFiscale=?, PartitaIva=?, Telefono=?,  
                            Fax=?, eMail=?, eMailAlternativa=?, Direttore=?, Intestazione=?, OrdineAccr=?, OAFunzionario=?, OACodice=?  
                                        WHERE Progressivo = ?'; 
                    $aPara = array( $Var['Cod'], $Var['Des'], $Var['Ind'], $Var['Comu'], $Var['Cap'], $Var['Regi'], $Var['CoFi'], $Var['PaIv'], $Var['Tele'],  
                                    $Var['Fax'], $Var['eMa1'], $Var['eMa2'], $Var['Dire'], $Var['Inte'], $Var['lOA'], $Var['FuDe'], $Var['Codi'], $Var['Prog'] ); 
		var_dump($aPara); 
                    $cQry = null; 
                        $cQry = cQuery( $Conn, $cSql, $aPara ); 
//...  
?>
verifica cosa ti danno e postali completi, in teoria dovrebbero esser uguali , con in più in $var dovresti trovare anche il submit (o come hai chiamato il pulsante di submit)
ho una mezza idea
poi metti un altro var_dump e verifica anche quello
PHP:
<?php var_dump($Campo[16]);?>
 <input type="checkbox" <?php echo $lOA; ?> class="Vis" name="lOA" value="<?php echo $Campo[16]; ?>" />
 

Gae58

Utente Attivo
26 Mar 2012
84
0
0
avevo già effettuato una cosa del genere

Il risultatao sull'input è QUesto:
PHP:
string(1) "0" naturalmente se quando vado in variazione è selezionato é string(1) "0"

Quello prima dell'aggiornamento è Questo:
PHP:
array(18) { [0]=> string(5) "CAPE" [1]=> string(6) "C.A." [2]=> string(20) "Via Vecchia, 2" [3]=> string(0) "" [4]=> string(5) "65100" [5]=> string(0) "" [6]=> string(0) "" [7]=> string(0) "" [8]=> string(9) "085417701" [9]=> string(10) "0854177060" [10]=> string(30) "direpe@inre" [11]=> string(0) "" [12]=> string(20) ". MICHELE" [13]=> string(23) "Al Diret" [14]=> string(1) "0" [15]=> string(49) "DIRETTORE DRA" [16]=> string(10) "1000640201" [17]=> string(1) "7" } 
array(19) { ["Prog"]=> string(1) "7" ["Cod"]=> string(5) "CAPE" ["Des"]=> string(6) "C.A." ["Ind"]=> string(20) "Via Vecchia, 2" ["Comu"]=> string(0) "" ["Cap"]=> string(5) "65100" ["Regi"]=> string(0) "" ["CoFi"]=> string(0) "" ["PaIv"]=> string(0) "" ["Tele"]=> string(9) "08701" ["Fax"]=> string(10) "08560" ["eMa1"]=> string(30) "di@inure" ["eMa2"]=> string(0) "" ["Dire"]=> string(20) "MICHELE" ["Inte"]=> string(23) "Al Di." ["lOA"]=> string(1) "0" ["FuDe"]=> string(49) "VE AUTOVEICOLI DI PA" ["Codi"]=> string(10) "100061" ["Agg"]=> string(8) "Aggiorna" }

Sono fermamente convinto di aver fatto una grossa sciocchezza che è così data per scontata che non si riesce a trovare l'errore.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
c'è qualcosa che non mi torna sui due var_dump.
se hai pazienza faccio delle prove e poi (penso domani) e ti so dire (spero)
 

Gae58

Utente Attivo
26 Mar 2012
84
0
0
vedi che ti ho accorciato dei dati che sono provati, ma la sostnza é quella
 

Gae58

Utente Attivo
26 Mar 2012
84
0
0
ho rifatto i controllo che mi hai detto ed il dump è perfettamente uguale, a parte il progressivo che nel primo sta all'inizio e nel secondo in ultimo

Comunque znche se clikko sul ceck per lui è sempre zero
 

minatore

Utente Attivo
25 Set 2007
410
0
0
in
PHP:
$_POST['lOA']
c'è il contenuto della scelta fatta dall'utente

ed in
PHP:
Function Aggiorna( $Tab, $Var ) {
				case 'Uffici':
					$cSql = 'UPDATE Uffici  SET Codice=?, Descrizione=?, Indirizzo=?, Comune=?, Cap=?, Regione=?, CodFiscale=?, PartitaIva=?, Telefono=?, 
							Fax=?, eMail=?, eMailAlternativa=?, Direttore=?, Intestazione=?, OrdineAccr=?, OAFunzionario=?, OACodice=? 
										WHERE Progressivo = ?';
					$aPara = array( $Var['Cod'], $Var['Des'], $Var['Ind'], $Var['Comu'], $Var['Cap'], $Var['Regi'], $Var['CoFi'], $Var['PaIv'], $Var['Tele'], 
									$Var['Fax'], $Var['eMa1'], $Var['eMa2'], $Var['Dire'], $Var['Inte'], $Var['lOA'], $Var['FuDe'], $Var['Codi'], $Var['Prog'] );
					$cQry = null;
						$cQry = cQuery( $Conn, $cSql, $aPara );
					break;

o in
Function Inserisci( $Tab, $Var ) {
				case 'Uffici':
					$cSql = 'INSERT INTO Uffici (Codice, Descrizione, Indirizzo, Comune, Cap, Regione, CodFiscale, PartitaIva, Telefono, 
									Fax, eMail, eMailAlternativa, Direttore, Intestazione, OrdineAccr, OAFunzionario, OACodice) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)';
					$aPara = array( $Var['Cod'], $Var['Des'], $Var['Ind'], $Var['Comu'], $Var['Cap'], $Var['Regi'], $Var['CoFi'], $Var['PaIv'], $Var['Tele'], 
									$Var['Fax'], $Var['eMa1'], $Var['eMa2'], $Var['Dire'], $Var['Inte'], $Var['lOA'], $Var['FuDe'], $Var['Codi'] );
					$cQry = null;
						$cQry = cQuery( $Conn, $cSql, $aPara );
					break;
c'è il savataggio del dato.

Forse prima del salvataggio ci dev'essere un passaggio intermedio per il cambio del dato?

Ciao, ho provato a leggere la discussione, anche se è toppo avanzata.
Seho capito bene, non riesci a salvare la modifica di una checkbox se la modifichi,
prova prima della update a fare una cosa del genere
PHP:
$checked = '0';
if(isset($_POST['il nome della check']))
	{
		$checked = '1';
	}
Perchè questo, come diceva borgo non vedo la valorizzazione della modifica.
Ciao da minatore
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
quando mi hai postato i var_dump sei sicuro di averli copiati nell'ordine giusto?
al var_dump($Var) dici che risulta array(18) { [0]=> string(5) "CAPE" [1]=> string(6) "C.A." [2]=>....
non dovrebbe risultare un array vettoriale [0]..[1].... , ma un array associativo come dal secondo var_dump($aPara)
poi se i campi di input del form corrispondono ai campi di della query a che si serve fare il passaggio
$aPara = array( $Var['Cod'], $Var['Des'].....
dai un occhio allo script semplificato qui sotto e provalo, se noti con la Aggiorna_2 (vedi i risultati dei due var_dump) eliminando quello del submit
ottengo comunque l'array associativo senza l'ambaradan del $aPara, al massimo modifica la query mettendo i l'ordine dei campi della query come ti risultano nel $_POST
PHP:
<?php
function Aggiorna( $Var ) {
	var_dump($Var);echo "<br>";
	$aPara = array($Var['lOA'], $Var['Fax']);
	var_dump($aPara);echo "<br>";
}
function Aggiorna_2( $Var ) {
	var_dump($Var);echo "<br>";
	unset($Var['salva']);//elimino il post del submit
	//se guardi questo var_dump vedi che usare $aPara non ti serve
	//al massimo metti in ordine la query in modo che i campi coincidano
	var_dump($Var);echo "<br>";
	//queste righe NON servono
	$aPara = array($Var['lOA'], $Var['Fax']);
	var_dump($aPara);echo "<br>";
}
$Campo[16]=1;
//decommnetando la=0 e commentando la =1 il checkbox appare selezionato o deelezionato
//$check=0;
$check=1;
$check=$Campo[16] ? 'checked' : '';
if(isset($_POST['salva'])){
	//usando la prima function
	Aggiorna($_POST );
	echo "<br><br>";
	//usando la seconda function
	Aggiorna_2($_POST );
}
?>
<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
  <p>
    fax <input name="Fax" type="text" id="Fax">
</p>
  <p>
    campo 16<input name="lOA" type="checkbox"<?php echo $check;?> id="lOA" value="<?php echo $Campo[16]; ?>">
</p>
  <p>
    <input name="salva" type="submit" id="salva" value="salva">
  </p>
</form>
 

Gae58

Utente Attivo
26 Mar 2012
84
0
0
ho inserito questo codice prima dell'aggiornamento:
PHP:
$_POST['lOA'] =  (isset($_POST['lOA'])) ? 1 : 0 ;

e funziona.
Quindi la checkbox va controllata (so che no si usa questo termine) sia in fase di visualizzazione ce di salvataggio.
Non so se sia corretto valorizzare la var del $_post.

Un ringraziamento ad entrambi, ma in particolare a borgo italia che mi ha sopportato per parecchio tempo e che mi aveva parlato di questa trasformazione, ma che purtroppo non avevo capito.

Di nuovo un grazie infinito
 
Discussioni simili
Autore Titolo Forum Risposte Data
L CheckBox e Visualizzazione di alcuni campi di un record di una o più tabelle PHP 5
A passare il valore del checkbox e altri campi alla pagina B tramite ajax Ajax 1
D settare i campi checkbox in db MySQL 0
M Selezione dei campi checkbox Javascript 0
G Disposizione campi HTML e CSS 6
L Ripetere Campi disabilitando input in riferimento ad un valore della select jQuery 0
G Campi multivalore Database 0
M Memorizzare i dati nei campi prima dell'invio al db PHP 4
D Stampa a video solo campi compilati MySQL 1
M Form: come tornare ai campi già compilati dopo invio PHP 1
M Array associativi php su 2 campi mysql PHP 10
D popolare campi tra th alla select PHP 36
G VBA OpenForm con WhereCondition + LIKE su campi differenti MS Access 5
B Stringa sql per ricerca su più campi Database 1
F Leggere e aggiornare dati di campi <input text> su file di test PHP 0
M Compilazione automatica campi in input stessa pagina PHP 0
MarcoGrazia Gestire lista campi vuoti in fase di autenticazione jQuery 1
M Aggiornare simultaneamente i campi di due tabelle collegate con id PHP 4
L aggiornare 2 campi di una tabella insieme PHP 6
L Estrazione valori max su più campi MySQL 4
L Campi obbligatori form php PHP 0
T Campi static del Controller generico si azzerano ad ogni richiesta PHP 3
elpirata Popolare campi tabella con totali estratti da database PHP 24
A [Javascript] Scrittura su più campi contemporaneamente Javascript 18
D Salvare in diversi campi mysql con diversi ID PHP 0
R [WordPress] Inserire campi aggiuntivi ad un Submit Form già dato dal template (front-end) WordPress 0
Domenico_Falco1 [Javascript] [HTML] Campi form con sfondo imposto dal browser Javascript 5
M [PHP] Query UPDATE che non mi aggiorna campi seconda tabella PHP 3
L [Javascript] Select option in campi input Javascript 4
D [ASP] Autocomplete cerca su 2 campi del db Classic ASP 1
elpirata [Javascript] Controllo campi required non effettuato Javascript 2
L [PHP] Form da select compilare campi automaticamente PHP 1
E Validazione campi form passati da link Programmazione 0
Cosina [PHP] Preservare i campi del form solo se l'invio non ha successo PHP 5
S [PHP] Selezionare i campi non in comune con le altre colonne della tabella PHP 4
A [MS Access] Somma Campi se in altro campo presente un determinato testo MS Access 1
M [PHP] Compilare campi in automatico con dati presi dal DB PHP 25
C [MySQL] Copiare campi di un record in un nuovo record MySQL 0
N [Java] Piccolo jform per calcolo totale da 2 campi i double Java 0
elpirata [MySQL] Sostituire valori campi con dati casuali MySQL 4
M [PHP] Sommare due campi calcolati PHP 3
R [Javascript] Togliere Campi obbligatori Javascript 7
P [PHP] Intercettare ed aggiornare campi di un database PHP 5
V [Javascript] [HTML] Attivazione nuovi campi di input Javascript 2
L [MS Access] come popolare automaticamente i campi di una sottomaschera MS Access 8
M [PHP] Escludere campi non valorizzati PHP 22
Q Problema su come far aggiornare i campi su un database Mysql PHP 17
C Creazione di una funzione per il filtraggio dei campi di un db Presentati al Forum 0
gandalf1959 [PHP] Dividere un campo di testo in più campi PHP 9
felino Risolto - [Wordpress][WooCommerce] PayPal Checkout e campi di fatturazione WordPress 2

Discussioni simili