Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] GET i POST w jednym pliku.
Forum PHP.pl > Forum > Przedszkole
kasior
Chodzi o to,że mam stronę na której są wyświetlane rekordy z bazy. Jest <select> który wybiera określone kryteria i to działa. Wyświetlone rekordy maja możliwość sortowania (ikonki) i to też działa, ale tylko w tedy kiedy z zapytania wyrzucę
  1. <?php
  2. WHERE region_id = '$region_id'
  3. ?>

Ale wtedy nie działa wybór kryteriów poprzez pole <select>
Kombinuję już drugi dzień i nie mogę wpaść na coś sensownego,żeby to wszystko działało. Formularz działa jako POST a sortowanie jako GET. Jak to wszystko połaczyć, zeby działało razem ? Pomóżcie proszę, bo ja już nie wiem co robić.

Kod wygląda następująco:

  1. <form action="ogloszenia.php" method="post">
  2. <br>
  3. <table border="0" align="center" cellpadding="0" cellspacing="0" width="70%">
  4. <tr >
  5. <td colspan="6" class="wybor">Wybierz region:
  6. <?php 
  7. $region_id = $_POST['region_id'];
  8. $pole = $_POST['pole'];
  9. $sort = $_POST['sort'];
  10.  
  11.  
  12. $query="SELECT * FROM jobs WHERE region_id = '$region_id' ORDER BY '$pole' $sort";
  13. $result=mysql_query($query);
  14. $num=mysql_numrows($result);
  15.  
  16.  
  17. $query2="SELECT * FROM region"; 
  18. $result2=mysql_query($query2);
  19. if(mysql_num_rows($result2))
  20. {
  21. echo '<select name="region_id" onChange="this.form.submit();">';
  22. echo '<option value="w" '.$selected.'>----------------</option>';
  23. while($wiersz=mysql_fetch_assoc($result2)) {
  24. $selected = ($region_id == $wiersz['region_id'])?'selected=\"selected\"':'';
  25. echo '<option value="'.$wiersz['region_id'].'" '.$selected.'>'.$wiersz['region_name'].'</option>'."\n";
  26. }
  27. echo '</select>';
  28. }
  29.  
  30. ?> 
  31.  
  32. </td>
  33. <tr>
  34.  
  35. <td class="naglowek_strona">Kraj <a href="ogloszenia.php?pole=kraj&sort=desc"><img src="admin/images/desc1.gif" title="malejąco" hspace="2" border="0" align="absmiddle" /></a><a href="ogloszenia.php?pole=kraj&sort=asc"><img src="admin/images/asc1.gif" title="rosnaco" hspace="2" border="0" align="absmiddle" /></a></td>
  36. <td class="naglowek_strona">Województwo <a href="ogloszenia.php?pole=region_id&sort=desc"><img src="admin/images/desc1.gif" title="malejąco" hspace="2" border="0" align="absmiddle" /></a><a href="ogloszenia.php?pole=region_id&sort=asc"><img src="admin/images/asc1.gif" title="rosnaco" hspace="2" border="0" align="absmiddle" /></a></td>
  37. <td class="naglowek_strona">Miasto / okolica <a href="ogloszenia.php?pole=lokalizacja&sort=desc"><img src="admin/images/desc1.gif" title="malejąco" hspace="2" border="0" align="absmiddle" /></a><a href="ogloszenia.php?pole=lokalizacja&sort=asc"><img src="admin/images/asc1.gif" title="rosnaco" hspace="2" border="0" align="absmiddle" /></a></td>
  38. <td class="naglowek_strona">Branża <a href="ogloszenia.php?pole=branza&sort=desc"><img src="admin/images/desc1.gif" title="malejąco" hspace="2" border="0" align="absmiddle" /></a><a href="ogloszenia.php?pole=branza&sort=asc"><img src="admin/images/asc1.gif" title="rosnaco" hspace="2" border="0" align="absmiddle" /></a></td>
  39. <td class="naglowek_strona">Stanowisko</td>
  40. <td class="naglowek_strona">Firma <a href="ogloszenia.php?pole=firma&sort=desc"><img src="admin/images/desc1.gif" title="malejąco" hspace="2" border="0" align="absmiddle" /></a><a href="ogloszenia.php?pole=firma&sort=asc"><img src="admin/images/asc1.gif" title="rosnaco" hspace="2" border="0" align="absmiddle" /></a></td>
  41.  
  42. </tr>
  43. <?php
  44.  
  45. if ($num > 0) {
  46.  
  47. $i=0;
  48. while ($i < $num) {
  49.  
  50. $id=mysql_result($result,$i,"id");
  51. $kraj=mysql_result($result,$i,"kraj");
  52. $region_id=mysql_result($result,$i,"region_id");
  53. $lokalizacja=mysql_result($result,$i,"lokalizacja");
  54. $branza=mysql_result($result,$i,"branza");
  55. $stanowisko=mysql_result($result,$i,"stanowisko");
  56. $firma=mysql_result($result,$i,"firma");
  57.  
  58.  
  59. ?>
  60.  
  61.  
  62.  
  63. <tr <?php if ($i % 2 == 0) { echo 'class="wiersz_strona"'; } else { echo 'class="wiersz_strona2"'; } ?> onclick="window.location ='wiecej.php?rekord=<?php echo $id; ?>'" />
  64. <td class="kom"><?php echo $kraj; ?></td>
  65. <td class="kom"><?php 
  66.  
  67. $query2="SELECT region_name FROM region WHERE region_id = '$region_id'";
  68. $result2=mysql_query($query2);
  69. if(mysql_num_rows($result2))
  70. {
  71. while($wiersz=mysql_fetch_assoc($result2)) {
  72. echo $wiersz['region_name']; 
  73. }
  74. }
  75. ?>
  76. </td>
  77. <td class="kom"><?php echo $lokalizacja; ?></td>
  78. <td class="kom"><?php echo $branza; ?></td>
  79. <td class="kom"><?php echo $stanowisko; ?></td>
  80. <td class="kom"><?php echo $firma; ?></td>
  81.  
  82. </tr>
  83.  
  84.  
  85. <?php
  86.  
  87. $i++;
  88.  }
  89.  } else { echo '<tr><td colspan="6" class="kom" align="center">Nie znaleziono ogłoszeń spełniających podane kryteria...</td></tr>'; 
  90.  
  91. }
  92. ?>
  93. </table>
  94. </form>
siemakuba
Po zatwierdzeniu formularza przestaje działać wszystko, co potrzebuje do działania danych z $_GET, tak?
A co masz jako action w formularzu? Bo właśnie tam wylądujesz po zatwierdzeniu formularza.
Podsumowując - w action formularzu dopisz sobie te zmienne które potrzebujesz i będzie OK.
Kod
action="ogloszenia.php?var1=val1&var2=val2"

Cytat
ale moderatorzy zamkneli i nie otworzyli pomimo próśb.

Byś już sobie darował, bo nie masz racji.

P.S. przenoszę na przedszkole.

pozdr.
kasior
To już próbowałem, ale nic się tak naprawdę nie dzieje.

  1. <form action="ogloszenia.php?region_id=<?php echo $region_id; ?>pole=<?php echo $pole; ?>&sort=<?php echo $sort; ?>" method="post">


Możliwe,ze nie tak to miało być napisane. O to ci chodziło ?
potreb
  1. <?php
  2. $pole = $_POST['pole'];
  3. ?>


A gdzie masz formularz wysyłający zmienną pole?

  1. <?php
  2. $pole = $_GET['pole'];
  3. ?>
kasior
Spójrz w kod u góry. Jest
  1. <?php
  2. $region_id = $_POST['region_id'];
  3. $pole = $_POST['pole'];
  4. $sort = $_POST['sort'];
  5. ?>


a poniżej jest

  1. <?php
  2. <a href="ogloszenia.php?pole=kraj&sort=desc">
  3. ?>

Sęk w tym,ze powinna tutaj być jeszcze jedna zmienna $region_id, która jest pobierana z tego co aktualnie wskazuje <select>

  1. <a href="ogloszenia.php?region_id=<?php echo $region_id; ?>&pole=kraj&sort=desc">


Po dodaniu jej mam w pasku adresu to co chce, czyli
  1. ogloszenia.php?region_id=2&pole=kraj&sort=asc



ale z kolei nie łapie tego zapytanie sql i nic się na stronie nie wyświetla.

Moze w ogóle żle to wszystko jest zrobione i powinno być inaczej, to poproszę o jakieś pomysły.
Zapodaję link do strony testowej gdzie można zobaczyć jak to działa
http://projekty.beep.pl/praca/ogloszenia.php
qrees
Cytat(kasior @ 18.03.2008, 13:07:27 ) *
Spójrz w kod u góry. Jest
  1. <?php
  2. $region_id = $_POST['region_id'];
  3. $pole = $_POST['pole'];
  4. $sort = $_POST['sort'];
  5. ?>


a poniżej jest

  1. <?php
  2. <a href=&#092;"ogloszenia.php?pole=kraj&sort=desc\">
  3. ?>

Sęk w tym,ze powinna tutaj być jeszcze jedna zmienna $region_id, która jest pobierana z tego co aktualnie wskazuje <select>

  1. <a href="ogloszenia.php?region_id=<?php echo $region_id; ?>&pole=kraj&sort=desc">


Po dodaniu jej mam w pasku adresu to co chce, czyli
  1. ogloszenia.php?region_id=2&pole=kraj&sort=asc



ale z kolei nie łapie tego zapytanie sql i nic się na stronie nie wyświetla.

Moze w ogóle żle to wszystko jest zrobione i powinno być inaczej, to poproszę o jakieś pomysły.
Zapodaję link do strony testowej gdzie można zobaczyć jak to działa
http://projekty.beep.pl/praca/ogloszenia.php

Bo jak dane masz wpisane na pasku adresu, to znaczy, że to jest GET a nie POST. Zamień POST na GET i powinno działać. A jeżeli czasem używasz POST a czasem GET, to zamień $_GET i $_POST na $_REQUEST.</a href=\"ogloszenia.php?pole=kraj&sort=desc\">


PS: Czy jakiś moderator może mi wyjaśnić skąd się bierze ten kod:
Kod
</a href=\"ogloszenia.php?pole=kraj&sort=desc\">

na końcu mojego posta?? I jak go wywalić?
kasior
No i o to chodziło. $_REQUEST rozwiązało sprawę. Dziękuję. biggrin.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.