Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] problem z ułożeniem fragmentów kodu
M@X
post
Post #1





Grupa: Zarejestrowani
Postów: 212
Pomógł: 0
Dołączył: 18.12.2003
Skąd: Warszawa

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


Witam.
Mam dosyć początkujący problem. Mianowicie mam w jednym pliku formularz wyszukiwania z bazy, wyświetlanie i edycje danych rekordów. Ale problem w odpowiednim rozłożeniu tego wszystkiego. Mianowicie:
- formularz wyszukiwania wyświetla się cały czas
- wyniki wyszukiwania pojawiają się po wciśnięciu INPUTa
- dalej klikam na jakiś rekord, wyniki wyszukiwania znikają i pojawia się pole do edycji danego rekordu
- dalej zapisuje zmiany w danym rekordzie
- i teraz jak ponownie wyszukuje kolejne dane poprzez formularz, to ten edytowany rekord cały czas jest widoczny.

Moja prośba to w jaki sposób odpowiednio poukładać dane moduły aby po kolejnym wyszukiwaniu, wczesniej edytowany rekord NIE był widoczny.

FORMULARZ DO WYSZUKIWANIA (WIDOCZNY CAŁY CZAS)
  1. <form method="POST">
  2. .
  3. .
  4. .
  5. <input type="submit" name="szukaj" value="Szukaj">
  6. .
  7. .
  8. .
  9. </form>




WYNIKI WYSZUKIWANIA (WIDOCZNE PO WYPEŁNIENIU FORMULARZA)
  1. <?
  2.    if(isset($_POST['szukaj']))
  3.    {
  4.        $query=mysql_query('SELECT * FROM ...');
  5.        ...WYNIKI
  6.    }
  7. ?>





EDYTOWANIE DANEGO REKORDU (TO NIE MA BYĆ WIDOCZNE GDY WYPEŁNIAM FORMULARZ I WYŚWIETLAM JEGO WYNIKI)
  1. <?
  2.    if($_GET['act']=='getedit')
  3.    {
  4.        $update='UPDATE * SET ...';
  5.        header('Location: index.php?id=1&act=edit&id='.$_GET['id'].'');
  6.            
  7.    }
  8.    
  9.    elseif($_GET['act']=='edit')
  10.    {
  11.    ...
  12.    <input type="submit" name="add" value="Zapisz">
  13.    }
  14. ?>


Oczywiście chodzi zapewne o ten fragment: id='.$_GET['id'].'' no ale tu w edycji to musi być, a dalej jak klikam "submit" w formularzu to w ścieżce cały czas jest widoczny, no i dlatego jest wyświetlany ten fragment. W takim razie może jakoś w formularzu da się to wyeliminować ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Pilsener
post
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Podziel kod instrukcją switch - case, przenosisz się do odpowiedniej części poprzez zmienną w adresie:
  1. <?php
  2. //parametry
  3. $go = $_GET['go'];
  4. switch ($go){
  5. case 'wyniki':  //szukane wyniki
  6. //kod
  7.  
  8. break;
  9. case 'edycja'; //edycja
  10. $id = $_GET['id'];
  11. //kod
  12.  
  13. break;
  14. }//koniec switch/case
  15.  
  16. //wyświetlanie zmiennych
  17. ?>
- w wynikach szukania generujesz np. link index.php?go=edycja&id=1234 - edytuj rekord o id 1234.

Pamiętaj, żeby nie używać echo w środku kodu - naucz się robić wszystko na zmiennych, dopiero na samym końcu skryptu wyświetlasz wynik pracy - tak masz większą kontrolę. Np. obsługa błędów - treść wrzucasz do zmiennej $tresc, błędy do tablicy $error[] - gdy tablica nie jest pusta zamiast treści wyświetlasz błędy. Dobrze jest też oddzielić HTML od silnika php.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 15:24