Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Formularz > type="image" zamiast submit, zamiana zwykłuch przycisków w formularzu na graficzne
Fixer
post 27.08.2007, 20:41:12
Post #1





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 24.10.2004
Skąd: TG

Ostrzeżenie: (0%)
-----


Witam, mam następujący problem.

Mam formularz, działa on dobrze pod IE7 i pod FF.
Ale gdy zamiast zwykłego przycisku
  1. <input type="submit" name="button" id="button" value="Submit" />

chcę wstawić grafikę
  1. <input name="btn_wyslij" type="image" value="btn_wyslij" onfocus="blur()"
  2. onmouseover="this.src='./images/btn/btn_wyslij_on.gif';
  3. style.cursor='pointer'" onmouseout="this.src='./images/btn/btn_wyslij_off.gif'"
  4. src="images/btn/btn_wyslij_off.gif" alt="Wyślij" />


to pod FF formularz działa dobrze a pod IE7 już nie (button wyślij już nie działa) sad.gif

Tak wygląda u mnie sprawdzanie czy przycisk został wciśnięty:
  1. <?php
  2. if (isset($_REQUEST["btn_wyslij"])) { 
  3. ...
  4. }
  5. ?>


jak znowusz zrobię przycisk w ten sposób:
  1. <input name="btn_wyslij" type="submit" value="" style="border: 0;
  2. background: url('images/btn/btn_wyslij_off.gif');
  3. background-repeat: no-repeat; margin-bottom: 4px; width: 69px; height: 21px;"
  4. onfocus="blur()" onmouseover="this.src='./images/btn/btn_wyslij_on.gif';
  5. style.cursor='pointer'"
  6. onmouseout="this.src='./images/btn/btn_wyslij_off.gif'"
  7. src="images/btn/btn_wyslij_off.gif" alt="Wyślij" />


to nie zmienia się grafika przycisku po najechaniu na niego myszką sad.gif

Jest jakiś sposób na rozwiązanie tego problemu?
Pozdrawiam.

Ten post edytował Fixer 27.08.2007, 23:48:20


--------------------
Go to the top of the page
+Quote Post
Fixus
post 27.08.2007, 22:00:00
Post #2





Grupa: Zarejestrowani
Postów: 295
Pomógł: 9
Dołączył: 8.02.2006

Ostrzeżenie: (0%)
-----


miałem podobny problem...z tego co pamiętam to IE nie pozwoli ci na taki manewr.

możesz oczywiście zrobić dwa guziki (jako .gif obrazek z napisem wyślij w dwóch stanach) i podmieniać za pomocą js

Ten post edytował Fixus 27.08.2007, 22:00:29
Go to the top of the page
+Quote Post
Fixer
post 27.08.2007, 22:42:53
Post #3





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 24.10.2004
Skąd: TG

Ostrzeżenie: (0%)
-----


problem przeglądarek załatwiłem detekcją rodzaju przeglądarki w php
  1. <?php
  2. $browser = strtolower($_SERVER['HTTP_USER_AGENT']);
  3. // tylko gdy IE
  4. if(strpos($browser,"msie")!==false) {
  5. echo ('<input name="btn_wyslij" type="submit" value="" style="border: 0; 
  6. background: url('images/btn/btn_wyslij_off.gif'); background-repeat: no-repeat; 
  7. margin-bottom: 4px; width: 69px; height: 21px; 
  8. cursor: pointer;" onfocus="blur()" alt="Wyślij" />');
  9. }
  10. else {
  11. // inna niż IE
  12. echo '<input name="btn_wyslij" type="image" value="btn_wyslij" onfocus="blur()" onmouseover="this.src='./images/btn/btn_wyslij_on.gif'; style.cursor='pointer'
  13. onmouseout="this.src='./images/btn/btn_wyslij_off.gif'
  14. src="images/btn/btn_wyslij_off.gif" alt="Wyślij" />';
  15. }
  16. ?>


Teraz pozostało mi zrobić podmianę obrazka w przycisku typu submit przy najechaniu myszki dla IE.
JS się chyba do tego nie nada no bo nie mogę dla submit zdefioniować czegoś w stylu "onmouse, onfocus..."

Ten post edytował Fixer 27.08.2007, 23:49:24


--------------------
Go to the top of the page
+Quote Post
kicaj
post 27.08.2007, 22:48:00
Post #4





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

Ostrzeżenie: (0%)
-----


A probowales tak?:
  1. <button type="submit"><img src="..." /></button>


--------------------
PHP Developer

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
Go to the top of the page
+Quote Post
Fixer
post 27.08.2007, 23:43:55
Post #5





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 24.10.2004
Skąd: TG

Ostrzeżenie: (0%)
-----


  1. <button type="submit"><img src="images/btn/btn_wyslij_off.gif" width="69" height="21" border="0"
  2. alt="Wyczyść" style="cursor:pointer" onclick="return wyczyszczenie();"
  3. onmouseover="this.src='./images/btn/btn_wyslij_on.gif'; style.cursor='pointer'"
  4. onmouseout="this.src='./images/btn/btn_wyslij_off.gif'" onfocus="blur()" /></button>


no zrobiłem tak jak doradziłeś ale bezsensowny rezultat jest...
mianowicie jest przycisk a na nim mniejsza grafika, formularz po kliknięciu w ten przycisk nie reaguje sad.gif (IE i FF)

Ten post edytował Fixer 27.08.2007, 23:44:54


--------------------
Go to the top of the page
+Quote Post
sobieh
post 27.08.2007, 23:49:00
Post #6





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 28.10.2004

Ostrzeżenie: (0%)
-----


<input type="image" src="adres obrazka" />

dziala to jako Submit
poza tym nie musisz uzywac this.src ... wystarczy src np. :

<input type="image" src="adres obrazka" onMouseOver=" src='inny_obrazek' " />

Ten post edytował sobieh 27.08.2007, 23:52:55
Go to the top of the page
+Quote Post
Fixer
post 27.08.2007, 23:51:49
Post #7





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 24.10.2004
Skąd: TG

Ostrzeżenie: (0%)
-----


to prawda ale...
ale juz przestaje działać jak chcesz sprawdzać który przycisk został wciśnięty tym kodem
  1. <?php
  2. if (isset($_REQUEST["btn_wyslij"])) { ...}
  3. ?>


dla IE musi być type="button" nie image
Jeśli pominę te kilka linijek w PHP to jak sprawdzę walidację w PHP?

Ten post edytował Fixer 27.08.2007, 23:56:12


--------------------
Go to the top of the page
+Quote Post
sobieh
post 28.08.2007, 00:06:26
Post #8





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 28.10.2004

Ostrzeżenie: (0%)
-----


<input type="image"> wysle forma w ktorym sie znajduje wiec mozesz zrobic dodatkowo
<input type="hidden" name="form1submit" value="true">

np. tak :
http://duality.com.pl/btest.php

albo uzyc image wraz z inputem jako hidden:

<img src="xxx" onClick="document.form.submit()">

Ten post edytował sobieh 28.08.2007, 00:08:46
Go to the top of the page
+Quote Post
Fixer
post 28.08.2007, 00:37:28
Post #9





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 24.10.2004
Skąd: TG

Ostrzeżenie: (0%)
-----


hmm dobry pomysł sobieh smile.gif
w międzyczasie wpadłem na coś równie ciekawego...

Jest to efekt rollover w css, znalazłem to tutaj, polecam: http://perfectionorvanity.com/2006/08/15/g...rmularzy-w-css/

Odpowiedni obrazek dla przycisku ściągnięcie z tąd: http://riddle.pl/-/xhtml/css-gfx-input/img2.png

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
  4. <title>Untitled Document</title>
  5. </head>
  6.  
  7. <style type="text/css">
  8. #image input, #submit input {
  9. display: block;
  10. }
  11.  
  12. #submit input {
  13. background: transparent url(btn_wyslij.gif) 0 0 no-repeat;
  14. border: none;
  15. cursor: pointer;
  16. height: 21px;
  17. max-height: 21px;
  18. padding-top: 40px;
  19. width: 69px;
  20. }
  21.  
  22. #reset input {
  23. background: transparent url(btn_wyczysc.gif) 0 0 no-repeat;
  24. border: none;
  25. cursor: pointer;
  26. height: 21px;
  27. max-height: 21px;
  28. padding-top: 40px;
  29. width: 88px;
  30. }
  31.  
  32. #submit input:hover, #reset input:hover {
  33. background-position: 0 -21px;
  34. }
  35.  
  36. #submit input:active, #reset input:active {
  37. background-position: 0 -42px;
  38. }
  39.  
  40. </head>
  41.  
  42.  
  43. <form id="formularz" name="formularz" method="post" action="">
  44. <table width="300" border="0" cellspacing="0" cellpadding="0">
  45. <tr>
  46. <td width="80" align="right">Imię:</td>
  47. <td width="10" rowspan="2">&nbsp;</td>
  48. <td><input name="imie" type="text" id="imie" size="20" /></td>
  49. </tr>
  50. <tr>
  51. <td align="right">Nazwisko:</td>
  52. <td><input name="nazwisko" type="text" id="nazwisko" size="20" /></td>
  53. </tr>
  54.  
  55. <table width="300" border="0" cellspacing="0" cellpadding="0">
  56. <tr>
  57. <td width="90" height="25">&nbsp;</td>
  58. <td width="3"><div id="submit"><input type="submit" name="submit" value="Wyślij" /></div></td>
  59. <td width="10">&nbsp;</td>
  60. <td><div id="reset"><input type="reset" name="reset" value="Wyczyść" />
  61. </div></td>
  62. </tr>
  63. </form>
  64.  
  65. </body>
  66. </html>


PS problem rozwiązany, dzięki za wasze sugestie, w działaniu można zobaczyć to tutaj: http://fixer.devtown.net/valid/index.php

Ten post edytował Fixer 28.08.2007, 07:37:11


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 15:20