Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML] Input submit z value jako obraz
Forum PHP.pl > Forum > Przedszkole
kubax33
Mam problem z przesłaniem danych przez submit z grafiką.

  1. <form method="post" action="strona.php">';
  2. <input type="image" src="obraz.png" alt="jakis tekst" name="wyslij" value="1">
  3. <input type="image" src="obraz1.png" alt="jakis tekst" name="wyslij" value="2">
  4. <input type="image" src="obraz2.png" alt="jakis tekst" name="wyslij" value="3">
  5. </form>


Po kliknięciu w obrazek następuje przekierowanie do kolejnej strony metodą POST i niestety nie działa ta metoda we wszystkich przeglądarkach. Na chromie ok na firefox przeładuje stronę, ale nie wysyła danych więc na pozostałych będzie też problem.

Wiem, że idzie zastosować CSS, aby był obraz submit-a jednak w moim przypadku konieczne jest, aby submit miał określoną wartość VALUE ponieważ nie chcę korzystać z przesyłu metodą GET, a formularz, który będzie składał się z kilku etapów będzie wykorzystywał SESJE.

Widziałem również gdzieś rozwiązanie z CSS i submita jako obraz, aby ukryć VALUE ustawia się wielkość czcionki na 0.1px ale to dla mnie trochę dziwne i chyba starocie.

Nie chcę korzystać z ukrytych pól HIDDEN bo wtedy musiałbym dla każdego obrazka submita dawać osobny <form>

Jak to zrobić w sposób należyty? jest wiele informacji w internecie, ale każde wykorzystanie ma jakieś minusy. Chcę, aby każda przeglądarka interpretowała tak samo wysłanie submita z wartością VALUE mającego odrębny obraz.



nospor
A poczym stwierdzasz ze nie wysyła danych? Robiles tak banalne sprawdzenie jak
print_r($_POST);
?
Bo zakladam, ze wiesz, iz pola IMAGE nie idą postem jako NAME
kubax33
Cytat(nospor @ 13.06.2014, 07:43:48 ) *
A poczym stwierdzasz ze nie wysyła danych? Robiles tak banalne sprawdzenie jak
print_r($_POST);
?
Bo zakladam, ze wiesz, iz pola IMAGE nie idą postem jako NAME



Nie wysyła danych we wszystkich przeglądarkach. Chcę aby submit miał VALUE ale nie był on widoczny. Mecze sie od wczoraj i na nic poczciwego nie wpadlem
nospor
Pytam się po raz kolejny:
zrobiles
print_r($_POST);
?
kubax33
CHROME:
Array ( [wyslij_x] => 55 [wyslij_y] => 35 [wyslij] => 1 ) 

i tutaj jest ok a w innych przeglądarkach po kliknięciu w button obrazka przeładowuje stronę na której się znajduje strona.php nie wykonuje żadnej akcji.
tzm
  1. <?php
  2.  
  3. echo $_POST['tekst'];
  4.  
  5. ?>
  6. <form action="self.php" method="post">
  7. <input type="submit" name="tekst" value="1" style="color:transparent;"/>
  8. <input type="submit" name="tekst" value="2" style="color:transparent;"/>
  9. <input type="submit" name="tekst" value="3" style="color:transparent;"/>
  10. </form>


Ogólnie ratuję Cie color:transparent ale nie wiem jak działa w różnych przeglądarkach. Pewnie IE wywali value na obrazku ale poza tą przeglądarką powinno być spoko.
kubax33
Rozwiązanie mojego problemu pewnie komuś się kiedyś przyda:

http://xplus3.net/2009/12/10/images-for-fo...tons-using-css/

  1. <form action="" method="post">
  2. <div class="form-submit">
  3. <input type="submit" name="submit" value="Submit" />
  4. </div>
  5. </form>


  1. form .form-submit input {
  2. display: block;
  3. width: 101px;
  4. height: 39px;
  5. background-color: transparent;
  6. background-image: url(submit.png);
  7. background-repeat: no-repeat;
  8. background-position: 0 0;
  9. padding: 0;
  10. margin: 0;
  11. border: none;
  12. cursor: pointer;
  13. text-indent: -9000px;
  14. }



IE
  1. text-indent: 0;
  2. padding: 39px 0 0 0;
  3. height: 0;
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.