Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyświetlanie wyników na tej samej stronie
Forum PHP.pl > Forum > Przedszkole
Gość_Mariusz
Witam exclamation.gif

Wszystkie przykłady skryptów w internecie są takie że np.: Wypełniam formularz np.: wyszukaj -klikam i pojawia się nowa strona z elementami wyszukanymi.

Chodzi mi o to aby po prawej stronie zrobić menu gdzie będzie np.: Wyszukaj, zaloguj - (formularze nie linki), i wynik będzie wyświetlony na tej samej stronie po lewej stronie a nie na innej na której już nie ma prawego menu.

Łatwo jest zrobić w menu linki do wyszukaj i zaloguj i zawartość wyświetlić w ramce pływającej, ale wtedy w ramce pływającej wyświetla się wyszukaj, wpisujemy dane klikamy szukaj i mamy efekt. A ja chciałem na pierwszej stronie mieś formularz wyszukaj a wynik w ramce pływającej czy jakoś tak .(Próbowałem też z Include ale chyba nie tedy droga)


Proszę o pomoc
bigZbig
Rozwiazan Twojego problemu jest kilka.

Na tej samej stronie wyswietlasz formularz i wyniki. W atrybucie ation formularza wskazujesz te sama strone na ktorej znajduje sie formularz. Jesli formularz nie zostal uzyty (nie zostalo zadane pytanie lub inaczej tablica $_POST jest pusta) to na stronie nie wyswietla sie wyniki. Jesli pytanie zostalo zadane to wyswietlasz wyniki pod formularzem.

Mozesz tez posluzyc sie technologia AJAX. Poczytaj na temat advAJAX lub zajrzyj do jednego z watkow poruszonych na tym forum pt. Moje pierwsze starcie z AJAXem, czyli przewodnik dla całkowicieZielonych. W obu zrodlach znajdziesz przyklady zastosowania.
TomASS
Zrób tak:

  1. <input type="hidden" value="TomASS" name="name"><br>
  2. <input type="submit" value="Wyślij" name="przycisk">
  3. </form>
  4.  
  5.  
  6.  
  7. <?
  8. if(isset($_REQUEST['przycisk'])){
  9. echo 'Wysłano formularz na tą samą stronę, a zmienna globalna Request zawiera<br/>';
  10. print_r($_REQUEST);
  11. }
  12. ?>


Myślę, że dopuki nie ma poważnych powodów na użycie AJAXa nie ma co go używać - wszakże ok 10% użytkowników ma wyłączony JS :/
bigZbig
Cytat(TomASS @ 2006-03-15 11:54:32)
Zrób tak:

  1. <input type="hidden" value="TomASS" name="name"><br>
  2. <input type="submit" value="Wyślij" name="przycisk">
  3. </form>
  4.  
  5.  
  6.  
  7. <?
  8. if(isset($_REQUEST['przycisk'])){
  9. echo 'Wysłano formularz na tą samą stronę, a zmienna globalna Request zawiera<br/>';
  10. print_r($_REQUEST);
  11. }
  12. ?>

Tak jak napisal TomAss tylko zamiast <form> daj <form method="POST">

a kod php zmodyfikuj analogicznie
  1. <?php
  2. if(isset($_POST['przycisk'])){
  3.  echo 'Wysłano formularz na tą samą stronę, a tablica superglobalna $_POST zawiera<br/>';
  4. print_r($_POST);
  5. }
  6. ?>


Z tablicy $_REQUEST korzystaj w ostatecznosci. Z uwagi na bezpieczenstwo lepiej jest w tym wypadku posluzyc sie tablica $_POST
qweluke
Witam,

próbuję skorzystać z waszych rad, ale nie działa mi to do końca...
tzn działa tylko na chrome, na IE i FF niestety nie sad.gif

Co robię źle?

Tutaj kod

  1. <form method=\"POST\" action='zakres.php'>
  2. <table border='0'>
  3. <tr><td>
  4. Wyswietl od
  5. </td>
  6. <td>
  7. <script>DateInput('start', true, 'YYYY-MON-DD', '$dziendzis')</script>
  8. </td><td>
  9. do
  10. </td><td>
  11. <script>DateInput('end', true, 'YYYY-MON-DD')</script>
  12. </td>
  13. <td>
  14.  
  15. <input type='image' src='gfx/edit.png' width='20' value='Wyślij' name='przycisk'/>
  16. </td></tr></table>";
  17.  
  18. if(isset($_REQUEST['przycisk']))
  19. {
  20.  
  21. $start=$_POST['start'];
  22. $end=$_POST['end'];
  23. if (empty($end) || empty($start) )
  24. {
  25. $blad=1;
  26. echo "<center><div valign='middle'><img src='gfx/info.png' style='vertical-align:middle;'> Nie wprowadzonego prawidłowego zakresu dat!</div></center>";
  27. }
  28. else
  29. {
  30. <table border=1 id='newspaper-a''>
  31. <tr>
  32. <th style=\"width : 10px;\">Nazwa</th>
  33. <th width='10%'>Link</th>
  34. <th width='13%'>Rozmiar</th>
  35. <th width='15%'>Data</th>
  36. </tr>
  37. }
  38. </table>";


Na reszcie przeglądarek strona tylko się przeładowywuje :/

print_r($_REQUEST); zwraca
Array ( [start] => 2011-9-01 [end] => 2011-9-07 [przycisk_x] => 13 [przycisk_y] => 8 [PHPSESSID] => 1gr24iqns2krpvvja4vqpq5s47 )

Inne przeglądarki miały problem z interpretacją
  1. if(isset($_REQUEST['przycisk']))


wiec zrobilem to tak:

  1. if ($_SESSION['zalogowany'] == 1)
  2. {
  3. <form method=\"POST\" action='zakres.php'>
  4. <table border='0'>
  5. <tr><td>
  6. <input type='hidden' name='checked' value='1'/> //<= dodanie hidden pola
  7. Wyświetl od
  8. </td>
  9. <td>
  10. <script>DateInput('start', true, 'YYYY-MON-DD', '$dziendzis')</script>
  11. </td><td>
  12. do
  13. </td><td>
  14. <script>DateInput('end', true, 'YYYY-MON-DD')</script>
  15. </td>
  16. <td>
  17. <input type='image' src='gfx/edit.png' width='20' value='Wyślij' name='przycisk'/>
  18. </td></tr></table>";
  19.  
  20. $czek=$_POST['checked'];
  21.  
  22. if(!empty($czek))
  23. {}
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.