Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [html] input z obrazkiem
Forum PHP.pl > Forum > Po stronie przeglądarki
Polik
Witam!

Szukalem w sieci jak mozna zrobic przycisk input jako obrazek. Trafilem na takie przyklady
<input type="image" src="ścieżka dostępu do obrazka" alt="informacja alternatywna" />

obrazek owszem pojawia sie ale przycisk ten nie przesyla wartosci value i przez to skrypt w php mi sie sypie. Czy mozna zrobic tak, zeby input byl obrazkiem i do tego przesylal wartosc value?

Pozdrawiam i licze na Wasza pomoc!
kossa
tak jak napisałeś jest poprawnie

<input type="image" src="obrazek.gif" name="przycisk">

to wszystko, może masz coś innego sknocone w formie, może znacznik otwierający <form> ma niepoprawne parametry lub źle odbierasz dane (post/get)

Łukasz
Daimos
nie lepiej ustalic parametr background w arkuszu styli?
head
  1. .odnosnikdostyli{
  2. background-image: url('adres');
  3. }

body
  1. <input type="Text" class="odnosnikdostyli">
Zeman
z tego co mi wiadomo wartość poprzez input image niestety nie bardzo się da, jeśli się myle niech mnie ktoś poprawi. Trzeba kołem obchodzić, np w image ustawić onclick który przypisze wartość inputowi typu hidden winksmiley.jpg
bogdan89
nie wiem czy dobrze rozumiem i nie wiem czy o to chodzi...
ale spróbujmy:

jesli chodzi Ci o to, zeby poprzez klikniecie w przycisk przeslac formularz z jakims parametrem dodatkowym to wystarczy dodac ukryty input z tą wartością:

  1. <form action="index.php" method="get">
  2. <input type="text" name="imie" />
  3. <input type="text" name="nazwisko" />
  4.  
  5. <input type="hidden" name="jakas_nazwa" value="jakas_wartosc" />
  6.  
  7. <input type="image" src="sciezka do obrazka.jpg" onClick="this.form.submit();" />
  8. </form>
Łukasz O.
Cytat(Zeman @ 11.04.2007, 00:19:57 ) *
z tego co mi wiadomo wartość poprzez input image niestety nie bardzo się da, jeśli się mylę niech mnie ktoś poprawi.

da się da - tylko jak zwykle IE daje ciała (jak dobrze pamiętam to Opera też kiedyś miała z tym problem) - parametr value przy type="image" jest opcjonalny nie tylko dla użytkownika, ale także dla przeglądarki - FF przekazuje wartość bezproblemowo, IE tylko współrzędne kliknięcia - rwałem sobie włosy z głowy, kiedy okazało się, że skrypt mi się wykrzacza przez to - ale wracając do tematu: jeśli koniecznie chcesz używać obrazka jako submita to tak jak było powiedziane - ręcznie dodaj hidden z nazwą i wartością jaką podał byś w inpucie (dla dwóch i więcej przycisków typu image możliwych w jednym formularzu podawaj wszystkie wartości w polach ukrytych, następnie sprawdzaj nazwę klikniętego obrazkowego inputa (nazwa przechodzi w każdej przeglądarce) i w zależności od tego co wykryjesz traktujesz niepotrzebne zmienne funkcją unset())
Zeman
Cytat(Łukasz O. @ 11.04.2007, 10:57:52 ) *
da się da - tylko jak zwykle IE daje ciała (jak dobrze pamiętam to Opera też kiedyś miała z tym problem)


Wyznaję zasade że "da sie" znaczy działa pod: FF, IE, Operą winksmiley.jpg Reszta przeglądarek to znikomy odsetek. Swoją drogą nawet nie wiedziałem ze w FF działa, bo mój edytor jest zintegrowany z IE więc to idzie na pierwszy ogień zawsze.
Polik
No coż, jak narazie mi sie nie udalo niestety. Moze dokladniej opisze moja sprawe:

mam formularz z trzema inputami submitami. W zaleznosci ktorego nacisne wywola sie inna czesc skryptu bo kazdy ma inna wartosc value wiec niestety inputy hidden odpadaja bo nie udalo mi sie rowniez odczytac nazwy name przycisku kiedy ustawialem go jako image. uzywalem do tego funkcji isset()

Macie jakies pomysly?
pbnan
  1. <form method="post" action="bla.php">
  2. <input id="hidden_input" type="hidden" value="" name="asd">
  3. <input type="button" value="Kliknij mnie 1" onclick="document.getElementById('hidden_input').value='1';document.forms[0].submit();">
  4. <input type="button" value="Kliknij mnie 2" onclick="document.getElementById('hidden_input').value='2';document.forms[0].submit();">
  5. <input type="button" value="Kliknij mnie 3" onclick="document.getElementById('hidden_input').value='3';document.forms[0].submit();">
  6. </form>

Powyższe powinno Ci wstawić do ukrytego pola wartość (1, 2 lub 3) i wysłać to do skryptu. Niczego nie obiecuję, bo pisałem z głowy smile.gif
//jeszcze małe poprawki
Polik
Udlao sie smile.gif zadzialal jedynie spodsob pbnan'a. O dziwo ten trick z css'em nie zaskoczyl.

Wielkie dzieki! Pozdrawiam!
siemakuba
Cytat
nie udalo mi sie rowniez odczytac nazwy name przycisku kiedy ustawialem go jako image

"name" nie dostaniesz w tablicy $_POST w IE - fakt. Dostaniesz za to współrzędne kliknięcia, na podtsawie których dowiesz się, który przycisk był kliknięty. (przekazuje je każda przeglądarka).

Przykładowo:
  1. <input type="image" name="button1" src="">
  2. <!-- dostaniesz w $_POST wartości: button1_x i button1_y -->
  3.  
  4. <input type="image" name="button2" src="">
  5. <!-- dostaniesz w $_POST wartości: button2_x i button2_y -->


pozdr.
laureno
Dokładnie ten sam problem napotkałem i dokładnie tak do rozwiązałem

zamiast

input type="submit" name="costam" & sprawdzania potem czy isset( $_POST['costam']
input type="image" name="costam" & sprawdzania potem czy isset( $_POST['costam_x']

Jak juz masz gotowe skrypty, to najlepiej tak przerobić.


A dlaczego typ IMAGE zamiast SUBMIT i background w CSS?
Ponieważ do submit nie można dodać alt'a i jak ktos ma wylaczone obrazki,
jest niewidomy, albo obrazka nie wykryje, to po zabawie - forma ni da rady wysłać.

---

Odpisy z KRSWizytówki PieczątkiWizytówki Pieczątki
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.