Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][PHP]Wysyłanie formularza - problem pod IE6 i IE7
Czadus
post 6.11.2009, 10:30:30
Post #1





Grupa: Zarejestrowani
Postów: 164
Pomógł: 4
Dołączył: 29.08.2008

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


Witam, mam spory problem z wysyłaniem formularza pod IE6 oraz IE7. Całość działa pod wszystkimi przeglądarkami poza tymi dwoma. Co może wpłynąć na takie zachowanie?? Prawdę mówiąc, ja niebardzo mam już pomysły.
Go to the top of the page
+Quote Post
nospor
post 6.11.2009, 10:31:41
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




a co ma IE do php? Nic. Moze jak opiszesz problem bardziej dokladnie, co konkretnie nie dziala, podasz kod itp. to pogadamy inaczej. Na chwile obecną przenosze na przedszkole


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
korro
post 6.11.2009, 10:36:31
Post #3





Grupa: Zarejestrowani
Postów: 259
Pomógł: 42
Dołączył: 8.04.2005
Skąd: Mława

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


Zrób print_r($_POST).
Jeśli masz submit button z obrazkiem i polegasz na jego nazwie, może się okazać, że IE dodaje _x do nazwy.


--------------------
Go to the top of the page
+Quote Post
Czadus
post 6.11.2009, 11:27:53
Post #4





Grupa: Zarejestrowani
Postów: 164
Pomógł: 4
Dołączył: 29.08.2008

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


Cytat(nospor @ 6.11.2009, 10:31:41 ) *
a co ma IE do php? Nic. Moze jak opiszesz problem bardziej dokladnie, co konkretnie nie dziala, podasz kod itp. to pogadamy inaczej. Na chwile obecną przenosze na przedszkole


Sorry.....

Oto kod formularza:
Kod
<form action="/ogloszenia/1" method="post">
      <table class="twojeOglo">
          <tbody>
              <tr><td colspan="8"/></tr>
              <tr><td class="marginBottom" colspan="8">Strony: <b><a href="/ogloszenia/1">1</a></b></td></tr>
              <tr class="thh">
                  <td class="thh">lp.</td>
                  <td class="thh">Typ</td>
                  <td class="thh">Kategoria / Podkategoria</td>
                  <td class="thh">Nr ogłosz.</td>
                  <td class="thh">Odwiedziny</td>
                  <td class="thh">Marka i model</td>
                  <td class="thh">Cena (€)</td>
                  <td class="thh">Opcje</td>
              </tr>
              <tr>
                  <td class="aktywne">1</td>
                  <td>Sprzedaż</td>
                  <td>moto / Osobowe</td>
                  <td>011021</td>
                  <td>17</td>
                  <td><div class="link"><a title="Audi / 90" href="/podglad/011021/">Audi / 90</a></div></td>
                  <td>347427.00</td>
                  <td>
                      <button title="Usuń" class="usun" value="011021u" name="usunOgloPytanie" type="submit"/>
                      <button title="Edytuj" class="edyt" value="011021" name="edytujOgloszenie" type="submit"/>
                      <button title="Dezaktywuj" class="deakt" value="011021d" name="deaktywujOgloszenie" type="submit"/>
                  </td>
              </tr>
              <tr>
                  <td class="marginTop" colspan="8">Strony: <b><a href="/ogloszenia/1">1</a></b></td>
              </tr>
          </tbody>
      </table>
      <div class="legendaHead fontBold">
          <table>
              <tbody>
                  <tr><td/><td class="tdDodajNowe"><a href="/zamow/">Zamów abonament</a> </td></tr>
                  <tr><td>Legenda:</td><td class="tdDodajNowe"><a href="/dodaj/">Dodaj ogłoszenie</a> </td></tr>
              </tbody>
          </table>
      </div>
      <table class="ogloTable"><tbody><tr><td class="ogloAktywne aktywne"/><td> Ogłoszenia aktywne</td></tr></tbody></table>
      <table class="ogloTable"><tbody><tr><td class="ogloAktywne nieakt"/><td> Ogłoszenia nieaktywne</td></tr></tbody></table>
  </form>


Próbując odebrać zmienną usunOgloPytanie nie otrzymuję nic, tak, jakby była niesutawiona. print_r($_POST) daje następujący efekt: Array ( [usunOgloPytanie] => )

Ten post edytował Czadus 6.11.2009, 11:29:55
Go to the top of the page
+Quote Post
nospor
post 6.11.2009, 11:39:03
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




<button>value</button>

Ale lepiej wysyłaj tę wartość w ukrytym polu
  1. <input type="hidden" value="twojawartosc" name="jakiesname" />


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
thek
post 6.11.2009, 12:07:52
Post #6





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Najwygodniej by było nieco zmienić strukturę wysyłki forma. Zrób, jak sugeruje nospor, przesyłanie wartości elementu z jakim pracujesz przez input hidden a odpowiednie działania wykonuj na podstawie rozpoznania wciśniętego submita.
Masz więc w kodzie w takim wypadku w formie:
  1. <input type="hidden" name="ogloszenie" value="<?php echo ( isset($_GET['id']) ) ? $_GET['id'] : '' ?>" />
  2. <input value="Usuń" class="usun" name="usun" type="submit" />
  3. <input value="Edytuj" class="edyt" name="edytuj" type="submit" />
  4. <input value="Dezaktywuj" class="deakt" name="deaktywuj" type="submit" />
A w kodzie na początku pliku ujętego w action:
  1. if( isset( $_POST['ogloszenie'] ) && !empty( $_POST['ogloszenie'] ) ) {
  2. if( array_key_exists('usun', $_POST) ) {
  3. //usuwanie
  4. } elseif( array_key_exists('edytuj', $_POST) ) {
  5. //edycja
  6. } elseif( array_key_exists('deaktywuj', $_POST) ) {
  7. //deaktywacja
  8. } else {
  9. //jakby jakimś cudem wysłał formularz biggrin.gif
  10. }
  11. } else {
  12. //Tutaj robisz coś jeśli brak numeru ogłoszenia
  13. }
Oczywiście to tylko szkielet mocno ograniczony o walidację i tylko szkielet. Sma go musisz dopasować do swoich potrzeb.

EDIT: I na kiego grzyba tyle klas do guzików? blink.gif Inna sprawa, że buttony mają czasem problemy by być poprawnie interpretowane przez choćby IE.

Ten post edytował thek 6.11.2009, 12:11:54


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
Czadus
post 6.11.2009, 13:38:55
Post #7





Grupa: Zarejestrowani
Postów: 164
Pomógł: 4
Dołączył: 29.08.2008

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


No dobrze, macie rację, już wiem, dlaczego te zmienne nie były wysyłane, tylko jak, Waszym sposobem stworzyć listę np. 30 wpisów, z których każdy musi mieć możliwość usunięcie, edycji.... Skąd wiedzieć, który z nich został wybrany, jeżeli przycisk submit ma wszędzie taką samą nazwę, a wartość przechowywana jest w polu typu input.
Go to the top of the page
+Quote Post
nospor
post 6.11.2009, 13:42:23
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No ale po co tam wogole walisz buttony? Rownie dobrze mogą byc linki. A linkach bez problemu mozesz przekazac ID czy inną wartość.
Jesli chodzi ci o wyglad to z linków też można zrobić takie wyglądem przypominające buttony


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Czadus
post 6.11.2009, 14:05:06
Post #9





Grupa: Zarejestrowani
Postów: 164
Pomógł: 4
Dołączył: 29.08.2008

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


Skrypt nad którym pracuje już był w dużej większości przygotowany, ja w zasadzie staram się go dokończyć. Błąd ten napotkałem niedawno, chyba będę musiał przerobić go na linki. Z tym, że to niestety jest kolejna dodatkowa praca przy nim. Za pomoc lecą THX
Go to the top of the page
+Quote Post
thek
post 6.11.2009, 14:58:50
Post #10





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Ja podałem Ci po przejściu na wybrany artykuł/news/cokolwiek. Jeśli chcesz zrobić "listę administracyjną" to albo każdy z wyników obejmujesz osobnym formem i zmieniasz tylko wartości dla pola ukrytego jak w przykładzie wyżej, gdyż po nim zostanie rozpoznane dla którego rekordu się akcja wykona, albo robisz to co proponuje nospor. Zresztą to właśnie jego rozwiązanie z przesyłaniem parametrów poprzez GET jest najczęściej stosowanym w takich wypadkach. Generujesz wtedy linki o postaci
plik.php?id=id_z_bazy&akcja=wybrana_akcja
i w pliku plik.php potem odczytujesz co masz z czym zrobić. Oczywiście walidacja, sprawdzanie uprawnień muszą być w pierwszej kolejności wykonywane.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
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: 14.08.2025 - 12:07