Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz bez przycisku, lub coś co przesle w podobny sposób zmienne ?
Forum PHP.pl > Forum > PHP
warezxp
Witam !

Mam problem otóż jestem początkujący i chce przesłać zmienne z formularza do pliku,
ale chce by to było na zasadzie takiej że w formularzu zmienne maja zdefiniowane wartości i chce je przekazać bez żadnego potwierdzenia-guziku itp.
Da rade coś takiego zrobić ? wszystko już mam tylko chodzi mi o to nieszzęsne potwierdzenie w formie przycisku lub entera którego nie chce.
piotrooo89
coś takiego? http://www.google.pl/search?q=onchange+sub...lient=firefox-a
warezxp
Nietsty nie o takie coś mi chodzi możne coś innego.
dr_bonzo
To niby kiedy ma sie formularz wyslac?
warezxp
Ja chce by sam się wysłał, bo wartości ma zdefiniowane nikt ich nie wprowadza. Trochę przybliżę temat otóż jest sobie strona A a na niej formularz z którego dane idą do strony B gdzie są przetwarzane i chce teraz by te dane przeszły do strony C, dane umieściłem ponownie w formularzu tylko kwestia jest taka że chce by przekazano je automatycznie.
bobo168
Jeżeli podstrona b ma tylko przetwarzac dane to po co wogóle ona jest nie łatwiej połączyc postrony b i c i po kłopocie?
warezxp
W tym problem że strona C nie jest moja tylko A i B są moje.
bobo168
Nie rozumiem za bardzo tongue.gif Mogłbyś to pokazac na jakimś prawdziwym przykładzie?
warezxp
No już jaśniej przedstawić nie mogę, kodu też pokazać nie mogę. Ale jak już powiedziałem rozchodzi się o to by przekazać zmienne za pomocą formularza który zrobiłem w automatyczny sposób bez żadnego przycisku czy wciskania klawisza enter. Lub jeśli wiecie możne znacie inną metodę która prześle zmienne z wartościami w podobny sposób do formularza.
bobo168
Użyj takiej funkcji:
  1. <?php
  2. function przekieruj($dane,$adres=''){
  3.  if(empty($adres)){$adres = $_SERVER['PHP_SELF'];}
  4.  echo '
  5.  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  6. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  7. <html xmlns="http://www.w3.org/1999/xhtml">
  8. <head>
  9. <title>Przekierowanie</title>
  10. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
  11. </head>';
  12. foreach($dane as $klucz => $wartosc){
  13.  $hiddeny .= "<input type='hidden' name='$klucz' value='$wartosc' />";
  14. }
  15. echo "<body onload=\"document.getElementById('przekieruj').submit()\">
  16.     <h2>Poczekaj chwilę... zostaniesz automatycznie przekierowany</h2>
  17.     <form id='przekieruj' method='POST' action='$adres'>
  18.     $hiddeny
  19.     <input type='submit' value='dalej' />
  20.     <p>Kliknij, gdy nie zostałeś przekierowany automatycznie</p>
  21.     <p>Twoja przeglądarka nie toleruje Java-Script lub coś tam...</p>
  22.     </form></body>";
  23. }
  24. ?>

- przykład użycia:


  1.    
  2. <?php
  3. przekieruj($_POST,'diabel.php')
  4. ?>

- wyśle tablicę $_POST do diabła, a jak ktoś ma wyłączony JS to wysmaży komunikat i pozwoli wysłać dalej poprzez kliknięcie. Zapraszam do przetestowania - zamiast tablicy $_POST możesz równie dobrze wysłać każdą inną tablicę asocjacyjną.
warezxp
No więc tak sposób poniekąd działa otóż kiedy wczytuje się strona B to rzeczywiście zmienne są przesyłane ale towarzyszy temu komunikatu i widać guzik do wciśnięcia. Czy da się zrobić bardziej dyskretnie tak bez tego guzika z komunikatem ?
bobo168
Postaw warunek że jeżeli przeglądarka obsługuje js to leci dalej jak nie to wyswietla guzik i komunikat. Poszukaj w google jak to zrobic całego skryptu pisac Ci nie będę tongue.gif
warezxp
Niema sprawy plusik już poleciał ale jakby ktoś miał jakąś alternatywę to z cichą obadam. Z góry dziękuje za dalszą pomoc.

jednak pospieszyłem się z tym plusem okazuje się że zmienna nie jest przekazywana i wyświetlany jest komunikat Nie zauważyłem z początku tego bo błąd był wpleciony w tekst komunikatu który szybko zniknął ale jak pozbyłem się guzika i komunikatu od razu dostrzegłem.

P.S.
Problem rozwiązany dzieki:
Kod
foreach( (array)$dane as $klucz=> $wartosc)


P.S.2.
Już znalazłem to czego szukałem:

<form name=Myform ... <input type=submit name=ok....

<script language=javascript>
document.Myform.ok.click();
</script>';
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.