2.10.06

Form - Input image v IE

Při zpracovávání formuláře, který se odesílá pomocí obrázkového tlačítka (input type=image), jsem v IE narazil na další chybičku.

Mějme následující kód:

<?php print_r($_POST); >
<form method='post' action=''>
<input type='image' src='tlacitko.gif' name='nazev' value='hodnota'>
</form>

Po odeslání formuláře dostaneme následující proměnné a jejich hodnoty:
FF:

Array ( [nazev_x] => 8 [nazev_y] => 19 [nazev] => hodnota )

IE:
Array ( [nazev_x] => 8 [nazev_y] => 19 )


Jak je vidět, tak IE vůbec neodeslal název tlačítka s jeho přiřazenou hodnotou. Dostali jste jen XY souřadnice kliknutí.

Protože jsem použil v jednom projektu obrázková tlačítka pro určení směru řazení výběru z databáze, potřeboval jsem samozřejmě i nazev s hodnotou (v mém konkrétním případě name='order' value='asc' resp. value='desc')

Důvod chyby v IE neznám, ale mohu Vám předložit alespoň mé řešení tohoto problému, které spočívá v přidání jednoho skrytého pole se stejným názvem jako mají obě image tlačítka. Tomuto poli při odesílání (onclick event na tlačítku) přiřadíme požadovanou hodnotu:

<?php print_r($_POST); >
<form action='' method='post'>
<input name='orderDirection' value='asc'
src='/graphics/asc.png' alt='Vzestupně' type='image'
onclick = 'this.form.orderDirection.value="asc";this.form.submit();'/>
<input name='orderDirection' value='desc'
src='/graphics/desc.png' alt='Sestupně' type='image'
onclick = 'this.form.orderDirection.value="desc";this.form.submit();' />
<input type='hidden' name='orderDirection' value='' />
</form>

Dostaneme toto:
FF:

Array([orderDirection_x]=>9 [orderDirection_y]=>10 [orderDirection]=>asc)

IE:
Array([orderDirection]=>asc [orderDirection_x]=>19 [orderDirection_y]=>18)

Štítky: ,

Počet komentářů: 4:

Anonymous Anonymní řekl...

Díky, pomohlo :)

2/29/2008 3:00 dop.  
Anonymous Anonymní řekl...

diky!

5/16/2008 4:14 odp.  
Anonymous Jakub Hejda řekl...

Díky za vyřešení!

Možná by stačilo to zjednodušit na:

onclick="this.form.akce.value=this.value; this.form.submit();"

1/12/2009 2:27 odp.  
Anonymous Anonymní řekl...

Diky!

9/11/2009 1:52 dop.  

Přidat komentář

<< Domovská stránka