Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML]type="image"
Forum PHP.pl > Forum > Przedszkole
kill15
Problem dość znany ale ja nie potrafię sobie z nim poradzić ;/ całą ubiegłą noc próbowałem i nic ;/

  1. <form action="indexda.php?step=wiecej" method="post">
  2. {foreach from=$cokat key=key item=item}
  3.  
  4. <strong><div class="tlewa1"><a href="/profilda.php?id={$item.id}">{$item.nazwa}</a><br></div></strong><div class="tlewa"><div class="hotel">
  5. {$item.opis}
  6. <div class="tlewa3" style="float: right;"><input type="image" src="/images/dwojga/wiecej.jpg" alt="wyslij" name="wybride" value="{$item.id}"/>
  7. </div></div></div>
  8.  
  9. {/foreach}
  10. </form>


Na FF działa wszystko dobrze ale oczywiście na IE nie ;/ potrzebuje żeby po kliknięciu tego butona wysyłało id który jest w zmiennej {$item.id}.
I oczywiście żeby był mój wygląd biggrin.gif


Czy jest jakiś skuteczny sposób na zrobienie tego questionmark.gif ewentualnie jak dać czysty tekst o wartości {item.id} i typie submit

?
lobopol
dodaj <input type="hidden" name="" value=""> z wartościami do wysłania
benio101
  1. <form action="indexda.php?step=wiecej" method="post">
  2. {foreach from=$cokat key=key item=item}
  3.  
  4. <strong><div class="tlewa1"><a href="/profilda.php?id=<? echo $item.id; ?>">{$item.nazwa}</a><br></div></strong><div class="tlewa"><div class="hotel">
  5. {$item.opis}
  6. <div class="tlewa3" style="float: right;"><input type="image" src="/images/dwojga/wiecej.jpg" alt="wyslij" name="wybride" value="{$item.id}"/>
  7. </div></div></div>
  8.  
  9. {/foreach}
  10. </form>
kill15
Nie działa.

UP: mii o ten link profil.php nie chodzi biggrin.gif
benio101
  1. <form action="indexda.php?step=wiecej" method="post">
  2. {foreach from=$cokat key=key item=item}
  3.  
  4. <strong><div class="tlewa1"><a href="/profilda.php?id={$item.id}">{$item.nazwa}</a><br></div></strong><div class="tlewa"><div class="hotel">
  5. {$item.opis}
  6. <div class="tlewa3" style="float: right;"><input type="image" src="/images/dwojga/wiecej.jpg" alt="wyslij" name="wybride" value="<? echo $item.id; ?>"/>
  7. </div></div></div>
  8.  
  9. {/foreach}
  10. </form>
kill15
nic to nie daje ;/
benio101
wstydnis.gif To już nie wiem. Musiałbym sprawdzić kod PHP, ale takowego nie dołączyłeś.
kill15
  1. if (isset($_GET['step']) && $_GET['step'] == 'wiecej')
  2. {
  3.  
  4. $wybride = $_POST['wybride'];
  5. $whatkat1 = mysql_query( "SELECT * FROM hotel WHERE id='$wybride' ") or die ( mysql_error() );
  6.  
  7. while( $wynikkat1 = mysql_fetch_array( $whatkat1 ) )
  8.  
  9. $smarty->assign(array( 'cokat1' => $kat1,
  10. 'opisten' => $wynikkat1['opis'],
  11. 'atrakcjete' => $wynikkat1['atrakcja'],
  12. 'nazwate' => $wynikkat1['nazwa'],
  13. 'zdjecie' => $wynikkat1['zdjecie'],
  14. 'zdjecie1' => $wynikkat1['zdjecie1'],
  15. 'zdjecie2' => $wynikkat1['zdjecie2'],
  16. 'zdjecie3' => $wynikkat1['zdjecie3'],
  17. 'zdjecie4' => $wynikkat1['zdjecie4'],
  18. 'zdjecie5' => $wynikkat1['zdjecie5'],
  19. 'step' => $_GET['step'],
  20. 'login' => $login));
  21.  
  22.  
  23. }

benio101
Poczytałem na anglojęzycznych stronach:
Problem jest następujący:

W niektórych wersjach IE jest bug i jeśli input jest typu image, to nie przekazuje value.
Tak więc dawanie argumentu value dla inputa typu image jest bezsensowne, jeśli chcesz, aby wszystkim Użytkownikom działało, co Ci jak najbardziej zalecam.
Rozwiązaniem jest faktycznie ukryty input z przekazaną wartością, tak jak napisał lobopol, ponoć wielu pomogło.

Spróbuj tak:

  1. <form action="indexda.php?step=wiecej" method="post">
  2. {foreach from=$cokat key=key item=item}
  3.  
  4. <strong><div class="tlewa1"><a href="/profilda.php?id={$item.id}">{$item.nazwa}</a><br></div></strong><div class="tlewa"><div class="hotel">
  5. {$item.opis}
  6. <div class="tlewa3" style="float: right;"><input type="image" src="/images/dwojga/wiecej.jpg" alt="wyslij" name="wybride"><input type="hidden" name="idhotelu" value="{$item.id}">
  7. </div></div></div>
  8.  
  9. {/foreach}
  10. </form>
oraz
  1. if (isset($_GET['step']) && $_GET['step'] == 'wiecej')
  2. {
  3.  
  4. $wybride = $_POST['wybride'];
  5. $idhotelu=$_POST['idhotelu'];
  6. $whatkat1 = mysql_query( "SELECT * FROM hotel WHERE id='$idhotelu' ") or die ( mysql_error() );
  7.  
  8. while( $wynikkat1 = mysql_fetch_array( $whatkat1 ) )
  9.  
  10. $smarty->assign(array( 'cokat1' => $kat1,
  11. 'opisten' => $wynikkat1['opis'],
  12. 'atrakcjete' => $wynikkat1['atrakcja'],
  13. 'nazwate' => $wynikkat1['nazwa'],
  14. 'zdjecie' => $wynikkat1['zdjecie'],
  15. 'zdjecie1' => $wynikkat1['zdjecie1'],
  16. 'zdjecie2' => $wynikkat1['zdjecie2'],
  17. 'zdjecie3' => $wynikkat1['zdjecie3'],
  18. 'zdjecie4' => $wynikkat1['zdjecie4'],
  19. 'zdjecie5' => $wynikkat1['zdjecie5'],
  20. 'step' => $_GET['step'],
  21. 'login' => $login));
  22.  
  23.  
  24. }


I jak, działa?
kill15
Teraz nawet na FF nie działa
A dodam że to mi działa dobrze w szukajce ale tam odsyła do pliku z szukaniem ;/
benio101
Pofatygowałem się osobiście i sprawdziłem, czy działa przekazywanie value inputa typu image:
Działa wszędzie oprócz IE.
I test dla inputa hiddena:
Działa wszędzie
W więc jeden problem rozwiązany. Jesteśmy o krok do przodu smile.gif
Błąd musi tkwić w czymś innym.

Sprawdź, jak będzie to wyglądało dla jednego hotelu.
Jeśli pyknie, to stawiam na foreach: powinno wówczas okalać formularz.
Ale to tylko typ.

Daj znać wynik testu dla jednego hotelu.
kill15
To że to przez foreach to ja wiem od początku.
Bo szukajka jest bez foreach i działa
benio101
Super, no to do dobrych wniosków doszedłem.
Okal foreachem formularz:

  1. {foreach from=$cokat key=key item=item}
  2. <form action="indexda.php?step=wiecej" method="post">
  3.  
  4. <strong><div class="tlewa1"><a href="/profilda.php?id={$item.id}">{$item.nazwa}</a><br></div></strong><div class="tlewa"><div class="hotel">
  5. {$item.opis}
  6. <div class="tlewa3" style="float: right;"><input type="image" src="/images/dwojga/wiecej.jpg" alt="wyslij" name="wybride"><input type="hidden" name="idhotelu" value="{$item.id}">
  7. </div></div></div>
  8.  
  9. </form>
  10. {/foreach}


Działa? Bo już się pogubiłem, w czym teraz problem blink.gif
kill15
Tak nawet na FF nie działa :/
benio101
No to już nie wiem, co jest nie tak, a zgadywanie nie ma sensu.
Podałeś problem - rozwiązałem. A w czym tkwi kolejny to dalej nie wiem, więc nie jestem w stanie Ci pomóc.
Pozdrawiam.
kill15
Cytat(benio101 @ 14.01.2011, 18:59:41 ) *
No to już nie wiem, co jest nie tak, a zgadywanie nie ma sensu.
Podałeś problem - rozwiązałem. A w czym tkwi kolejny to dalej nie wiem, więc nie jestem w stanie Ci pomóc.
Pozdrawiam.

Właściwie to cały czas to jest ten sam problem smile.gif
ale dzięki za chęci. Jakby ktoś miał jakieś pomysły to piszcie
potreb
Problem ten sam? Chcesz wysłać dane z formularza? O to rozwiązanie:

  1. <input type="submit" class="wyslij" name="wybride[{$item.id}]" value="Wyślij dane bo już mnie to wkurza"/>


I wtedy pobierasz sobie dane z nazwy buttona wybride.
Nie wiem po co się uparłeś na image? A po drugie co pisał benio, ukryty input dodatkowy jak chcesz przesłać dane bez wersji tablicowej nazwy plus submit z odpowiednim css-em, żeby wyglądał jak obrazek.

A jeszcze dodam, że możesz zastosować liste rozwijaną skoro używasz foreach.
benio101
No jo, parametr w nazwie, na to nie wpadłem winksmiley.jpg .. przydatna informacja.. tak na zaś, może się kiedyś przyda...
I od razu problem rozwiązany, w try miga.
kill15
Rozwiązałem problem najprościej smile.gif


  1. <input type="submit" name="wybride" style="background-image: url(/images/dwojga/wiecej.jpg); font-size: 0px; width: 75px; height: 25px; border: 0px" value="{$item.id}" >


I wygląd idealny smile.gif
benio101
No proszę... aarambo.gif
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.