Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Podmiana obrazków w polu imput
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
pc5
Witam!

Mam takie pole :

  1. <input class="none" type="image" src="images/szukaj_sm.gif" ALT="szukaj" NAME="szukaj1" border=0>


Jest to po prostu obrazek lupki, po nacisnieciu ktorego rozpoczynamy wyszukiwanie, jest on czescia pewnego formularza. Czy da sie zrobic podmienianie obrazkow przy najechaniu kursorem na ten "obrazko-submit"? Próbowałem ale nic mi nie zadziałało.

Pozdrawiam - KM
mario
Rollover Submit Image

Najpierw skopiuj ten skrypt JAVA:

  1. <script TYPE="text/javascript">
  2. <!--
  3. // copyright 1999-2001 Idocs, Inc. http://www.idocs.com/tags/
  4. // Distribute this script freely, but keep this
  5. // notice with the code.
  6. var submitRolls = new Object();
  7.  
  8. function submitroll(src, oversrc, name)
  9. {
  10. this.src=src;
  11. this.oversrc=oversrc;
  12. this.name=name;
  13. this.alt="Submit Query";
  14. this.write=submitroll_write;
  15. }
  16.  
  17. function submitroll_write()
  18. {
  19. var thisform = 'document.forms[' + (document.forms.length - 1) + ']';
  20. submitRolls[this.name] = new Object();
  21. submitRolls[this.name].over = new Image();
  22. submitRolls[this.name].over.src = this.oversrc;
  23. submitRolls[this.name].out = new Image();
  24. submitRolls[this.name].out.src = this.src;
  25.  
  26. document.write
  27. (
  28. '<A onMouseOver="if (document.images)document.images['' + this.name + "'].src=submitRolls['" + this.name + ''].over.src"' +
  29. ' onMouseOut="if (document.images)document.images['' + this.name + "'].src=submitRolls['" + this.name + ''].out.src"' +
  30. ' HREF="javascript:'
  31. );
  32.  
  33. if (this.sendfield)
  34. {
  35. if (! this.sendvalue)
  36. this.sendvalue = 1;
  37. document.write(thisform, ".elements['", this.sendfield, "'].value='", this.sendvalue, "';");
  38. }
  39.  
  40. document.write(thisform + '.submit();void(0);"');
  41. if (this.msg)document.write(' onClick="return confirm('' , this.msg, '')"');
  42. document.write('>');
  43.  
  44. document.write('<IMG SRC="' + this.src + '" ALT="' + this.alt + '" BORDER=0 NAME="' + this.name + '"');
  45. if (this.height)document.write(' HEIGHT=' + this.height);
  46. if (this.width)document.write(' WIDTH=' + this.width);
  47. if (this.otheratts)document.write(' ' + this.otheratts);
  48. document.write('></A>');
  49. if (this.sendfield)
  50. {
  51. document.write('<INPUT TYPE=HIDDEN NAME="' + this.sendfield + '">');
  52. document.forms[document.forms.length - 1].elements[this.sendfield].value='';
  53. }
  54. }
  55.  
  56. //-->


i robisz formularz z tego:

  1. <FORM ACTION="../cgi-bin/mycgi.pl">
  2. email: <INPUT NAME="email">
  3.  
  4. <script TYPE="text/javascript">
  5. <!--
  6. var sr = new submitroll("submit.out.gif","submit.over.gif","mysubmit");
  7. sr.write();
  8. //-->
  9.  
  10. <INPUT TYPE=SUBMIT VALUE="Go!">
  11.  
  12. </FORM>
pc5
Rzeczywiście to działa, ale jest jeden problem. W php nie mogę teraz sprawdzić czy naciśnięto przycisk szukaj, ponieważ nie jest on przekazywany do tablicy $_POST. Dla mnie akurat jest to duży problem. Może jakieś inne rozwiązanie?

Pozdrawiam - KM
mario
więc zastosuj w formularzu
  1. <input type=hidden name=submit value=ok>
i dostaniesz w $_POST[submit] wartość która poinformuje Cię o przesłaniu formularza.
kubatron
mario: nie wprowadzaj ludzi w błąd, ponieważ ten skrypt co podałeś to nie jest jak napisałeś "JAVA", tylko jest to skrypt "JAVASCRIPT" a to wielka różnica, pierwsze poczytać co to JAVA potem poczytaj co to JAVASCRIPT...

To taka uwaga...
pc5
Cytat(mario @ 2005-05-08 09:44:16)
więc zastosuj w formularzu
  1. <input type=hidden name=submit value=ok>
i dostaniesz w $_POST[submit] wartość która poinformuje Cię o przesłaniu formularza.

A właśnie ze w tablicy $_POST jest wartość pola text które się wypełnia, ale nie ma żadnego info o przycisku szukaj, ani nawet współrzednych szukaj_x i szukaj_y, a to przecież obrazek submit. Tak więc jeżeli mam 4 takie obrazki, to nie jestem w stanie sprawdzić który został naciśnięty, ponieważ mam 4 submity w formularzu, każdy działa troszkę inaczej. Tak więc... lipa.

Próbowałem metodą CSS, działa pod FF, ale pod IE już nie. Makabraaa...
FiDO
Po wstepnym obejrzeniu kodu moge stwierdzic, ze da sie cos takiego zrobic...
Kod
var sr = new submitroll("submit.out.gif","submit.over.gif","mysubmit");
sr.sendfield = 'nazwa_pola';
sr.write();


Nie sprawdzalem tego, ale z kodu wynika, ze powinno dzialac.
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.