Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno html tag "image"

Zdravim

Prosim o pomoc so sice strasne primitivnym problemom ale predsa. Ako to,ze v Mozile mi input type="image" nefunguje ale v google chrome ano?

kod mam asi takyto:

...
function pre_request() 
{
  if (isset($_POST['delete'])) 
    header("Location: index.php?page=kontakt");
}
...
...
<form action='index.php?page=kontrola_textu' method='post'>
    <input type='image' name='delete' value='1' src='images/kos.bmp' alt='Submit' title='zmazať'></td>
</form>
...

A napriklad ak dam type="submit" tak to ide. Uz mam pocit ze blbne mozila a nie ja :-D
Dakujem.

Předmět Autor Datum
Asi nejsi sám. 811616
host 28.05.2011 19:02
host
Řešil jsem stejný problém. Přišel jsem na to, že v Mozile a Google chromu to fungovalo a v IE a Opeř…
leee 28.05.2011 19:17
leee
Dodatek: mám verzi Mozily 3.6.17
leee 28.05.2011 19:20
leee
Uz som odstranil aj tabulku aj vsetky tagy,v ktorom ten form bol.O typu hidden viem,ale chcem mat pr…
matasko24 28.05.2011 19:28
matasko24
Tabulka tomu nevadila ani ostatní tagy, problém je v prohlížecích. Zdrojový kód co přikládám si zkus…
leee 28.05.2011 21:14
leee
Ještě připomínka "mimo mísu" - kos.bmp by bylo vhodné překonvertovat do formátu GIF nebo PNG.
host 28.05.2011 19:24
host
Kebyže si skúsiš vypísať všetko, čo ti prišlo v $_POST, tak ťa to udrie do očí. Blbne samozrejme Chr…
los 28.05.2011 19:51
los
nechal jsem si vypsat vše co mi přišlo v $_POST, a krom pozice kliknutí mi to v IE ani v Opeře žádné…
leee 28.05.2011 20:54
leee
a krom pozice kliknutí mi to v IE ani v Opeře žádné další údaje nevypsalo Tá pozícia je presne to,…
los 28.05.2011 22:32
los
ok,tak mi prosim ta napis,ako by som to mal prerobit,ked mam zoznamy (texty,obrazky,uzivatelia..)a p…
matasko24 30.05.2011 15:40
matasko24
To, že na ktorý input type=image používateľ klikol, zistíš podľa atribútu name. Takže namiesto nesp…
los 30.05.2011 15:57
los
Spravil som to tak ze ta hodnota je v name...ako si to ty napisal.Diky A to povodne znenie ako <inpu…
matasko24 30.05.2011 16:25
matasko24
Element input type=image s atribútom value nikdy ani neexistoval - existovali len nesprávne implemen… poslední
los 30.05.2011 17:01
los

Řešil jsem stejný problém. Přišel jsem na to, že v Mozile a Google chromu to fungovalo a v IE a Opeře ne. Je mi tedy divné, že Vám to v Mozile nefungovalo(, to si ale vysvětlují tím, že nemám, nejaktuálnější verzi, kde mohla být odebrána podpora na tento element "name"). Doporučuji Vám jako řešení toho problému nepoužívat element "name" u tagu "input type='image'" a místo toho použít skrýtý tag na předání parametrů:
<input type="hidden" name="delete" value="1">
A ještě jedna poznámka: Vidím tam tag </td>, nikde ale zažátek(<td>) tohoto tagu. Pokud je začátek před form, což je logické, tak je to špatně, neboť křížíte tagy a to se nemá!!!

Tabulka tomu nevadila ani ostatní tagy, problém je v prohlížecích. Zdrojový kód co přikládám si zkuste v prohlížecích. Ačkoliv budete v různých prohlížečích zkoumat STEJNÝ kód výsledky budou jiné. Hodnota "hodnota2"
se vám, ale vždy předá, ať zkusíte jakýkoliv prohlížeč.

(
Toto řešení jsem vám, ale už přes hidden nabízel. Chcete mít z obrázku tlačítko, tak po kliknutí na daný obrázek se vám odešle formulář. Z položky hidden budete vědět, že formulář byl odeslán. Problém by byl, ale pokud by tam bylo více tlačítek/obrázkových tlačítek. Potom byste si musel zjišťovat přenesením "obrazek_x" (respektive "obrazek_y") z hodnoty "name" (v tomto daném zdrojovém kódu)(php). Vše byste měl pochopit, když si spustíte tento zdrojový kód:
)

zkuste si tento kód:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=windows-1250">
  <title></title>
  </head>
  <body>
<form action="a.php" method="post">
<input type="image" name="obrazek" value="hodnota1" src="http://banery.banan.cz/banan30.gif">
<input type="hidden" name="skryty" value="hodnota2">
</form>
<?php 
echo"------------------------------------<br><br>" ;
print_r($_POST); 
?>
  </body>
</html>

nechal jsem si vypsat vše co mi přišlo v $_POST, a krom pozice kliknutí mi to v IE ani v Opeře žádné další údaje nevypsalo. Nevím čím to, ale mě to v Chrome fungovalo (vypsalo hodnoty ve value), ač to podle standartu fungovat nemá podle Vás.

a krom pozice kliknutí mi to v IE ani v Opeře žádné další údaje nevypsalo

Tá pozícia je presne to, čo ti malo prísť - nič ďalšie sa podľa štandardu posielať nemá. To, že Chrome posiela ešte niečo ďalšie navyše, nie je chyba ani Opery, ani IE, ani Firefoxu, ani Safari a ani ďalších prehliadačov.

ok,tak mi prosim ta napis,ako by som to mal prerobit,ked mam zoznamy (texty,obrazky,uzivatelia..)a pomocou obrazka "kos" v kazdom riadku som ten dany riadok vymazal.Ale ked mi po kliknuti nan odosle len poziciu kde som klikol a nic ine,tak to vlastne neviem,na ktory obrazok "kosa" som klikol,teda nerozonam jednotlive riadky. Neda sa napr. na input button alebo submit natiahnut obrazok? Ale tak,aby ho cely prekrival. Diky

To, že na ktorý input type=image používateľ klikol, zistíš podľa atribútu name.

Takže namiesto nesprávneho:

<input type="image" name="delete" value="1" ...>
<input type="image" name="delete" value="2" ...>

Budeš mať napríklad niečo takéto:

<input type="image" name="delete-1" ...>
<input type="image" name="delete-2" ...>

Ďalšie rozumné možnosti sú:
- použiť odkaz (budeš musieť zabezpečiť pred CSRF),
- použiť input type=submit (nebude tam obrázok).

Existujú aj menej rozumné možnosti, z nich vyberám napr.:
- použiť button (a tým nemyslím input type=button),
- použiť kombináciu img, label, input type=submit a CSS,
- ošetriť pomocou JavaScriptu.

Spravil som to tak ze ta hodnota je v name...ako si to ty napisal.Diky
A to povodne znenie ako <input type="image" name="delete" value="1" ...> uz existovat nebude?Nechapem naco su niekomu pri takomto jednoduchom inpute hodnoty x a y v bode,kde klikol.Mali to nechat,ako to bolo,pripadne to obohatiti o tuto moznost.

Element input type=image s atribútom value nikdy ani neexistoval - existovali len nesprávne implementácie, z ktorých to časom zrejme tiež zmizne (tak ako vo Firefoxe).

To, že sa posielajú súradnice kliknutia, má skôr historický základ, takže nejakú skrytú logiku za tým nehľadaj. Prakticky sa input type=image používa presne tak, ako ho chceš použiť ty. Najsprávnejšie riešenie je ale použiť obyčajný input type=submit.

BTW: Keby všetky prehliadače implementovali od začiatku správne element button, tak o nejaký input type=image by si ani nezakopol.

Zpět do poradny Odpovědět na původní otázku Nahoru