domenica 9 ottobre 2011

Differenza tra submit e image tra Crome, Firefox e Explorer

Ci ho perso mezza giornata e lavorando con Crome mi sembrava che tutto funzionasse. Nel sito www.minifibts.it compare un elenco di tutti gli articoli scritti e come potete vedere a sinistra dell'elenco compare una freccia rossa che una volta cliccata attiva un submit. Utilizzavo il metodo Post e abbinavo le coordinate dell'articolo (data e nome azione) al valore value dell'elemento. Il problema sorgeva perchè volevo sostituire il campo da cliccare con una immagine (la freccia appunto). Le dichiarazioni type image funziona come una submit e infatti con Crome non avevo problemi e tutto funzionava. Quando intercettavo le coordinate del campo cliccato il valore conteneva la data e il nome dell'azione a cui si riferiva l'articolo. Con grande sorpresa il giorno dopo provavo con Firefox e anche con Explorer e non funzionava più niente. Alla fine ho trovato la spiegazione e cioè che Firefox e Explorer in base ad una direttiva wc3 ritorna nel campo value (non quello che avete settato voi, ma le coordinate x, y del punto cliccato a partire dall'angolo in alto a sinistra dell'immagine. Ho trasformato tutto con il metodo GET inserendo per ogni riga la freccia con un link href alla stessa pagina. Il metodo GET ritorna sempre nel campo value le coordinate del campo scelto.

con queste istruzioni recupero la $data e la $fsigla dell'articolo cliccato

//if (isset($_GET['box']))
// {$box = $_GET['box'];
// }
//
//while (list ($key, $val) = @each ($box))
// {
// $arrayCoordinate = explode("/", $val);
// $fsigla = $arrayCoordinate[0];
// $data = $arrayCoordinate[1];
// }
//


il metodo del form è form action="#" method="get"

le istruzioni qui sotto generano la colonna di freccie che possono essere cliccate e che contengono i parametri da leggere nella fase successiva con il metodo GET
/*
echo td width='2%' title='leggi questo articolo' align='center'
echo a href='index.php?box[]=".$fsigla."/".$data."' // parametri passati con metodo GET
echo img src=frecciad.jpg border=0
echo /a
echo /td;
*/

//$box[] contiene il vettore con tutti i parametri che possono essere passati con un clic

Purtroppo non riesco a scrvere il codice php corretto perchè il browser li interpreta e non li fa vedere in modo corretto. Se siete interessati vi mando il pezzo di codice info@minifibts.it

Nessun commento:

Posta un commento