Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Komunikaty po wykonaniu danej operacji + osobna strona transakcji, Pytanie odnośnie rozwiązania.
nait
post
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 3
Dołączył: 30.03.2009

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


Pisze mały panel admina od jakiegoś czasu, ciągle coś zmieniam, ulepszam i chyba mniej więcej mam to co sobie zaplanowałem i chciałbym zapytać bardziej doświadczonych ludzi czy to dobre rozwiązanie.
Chodzi o wyświetlanie komunikatów podczas dodania, edycji itd, także o puste pola itp.
Tak więc mam powiedzmy link.php i w niej mam odpowiedni formularz, z niego dane przesyłane są transact.php i tam przetwarzane, sprawdzanie czy poprawnie zostało wszystko wypełnione itd i w zależności od powodzenia operacji i przesyłam spowrotem getem id komunikatu jaki powinien wyświetlić się w tym wypadku na link.php <-- odpowiednią funkcję sobie napisałem do tego bo chciałem taki system wykorzystać do każdej podstrony.

np report_l=1,2, a później to rozbijam na odp komunikaty i wyświetlam je.
Skrócony przykład funkcji:
  1. function OperationReport() {
  2. if ((!empty($_GET['p']) && isset($_GET['p'])) &&
  3. !empty($_GET['report_l']) && isset($_GET['report_l'])) {
  4.  
  5. // ---- Links Start ------------------------------------------------------------------------------ //
  6.  
  7. $reports = explode(',', $_GET['report_l']);
  8. foreach($reports as $value) {
  9. switch ($value) {
  10.  
  11. // --- Dodaj --------------------------------------------------------------------- //
  12.  
  13. case '1': //
  14. $report[1][] = "Pole link nie może być puste";
  15. $report[1][] = 0; // 0 - niepowodzenie operacji, 1 - operacja pomyślnie wykonana
  16. break;
  17. case '2': //
  18. $report[2][] = "Pole opis nie może być puste";
  19. $report[2][] = 0;
  20. break;
  21. case '3': //
  22. $report[3][] = "Link nie może przekroczyć 350 znaków";
  23. $report[3][] = 0;
  24. break;
  25. case '4': //
  26. $report[4][] = "Opis nie może przekroczyć 350 znaków";
  27. $report[4][] = 0;
  28. break;
  29. case '5': //
  30. $report[5][] = "Błąd podczas ustalania pozycji linku";
  31. $report[5][] = 0;
  32. break;
  33. case '6': //
  34. $report[6][] = "Nie można dodać linku do bazy";
  35. $report[6][] = 0;
  36. break;
  37. case '7': //
  38. $report[7][] = "Link dodany do bazy";
  39. $report[7][] = 1;
  40. break;;
  41.  
  42. // --- Edytuj --------------------------------------------------------------------- //
  43.  
  44. }
  45. }
  46. foreach ($report as $value){
  47. echo "<div style=\"width:100%;background-color:" . ($value[1] ? '#628f3d' : '#b02f2f') . ";padding:4px;\">$value[0]</div>\n";
  48. }
  49. }
  50. }


i przykład strony transakcji:
  1. // Zamiana kluczy z $_POST na zmienne
  2. // $_POST['$klucz'] na $klucz
  3. foreach ($_POST as $key => $value) {
  4. $$key = $value;
  5. }
  6.  
  7. switch ($_GET['p']) {
  8. // ================================================================================
    =============== //
  9. // ---- Links Start ------------------------------------------------------------------------------ //
  10.  
  11. case 'links':
  12. $report = 'report_l';
  13. $redirect = '../admin.php?p=links';
  14. $report_id = '';
  15. switch ($_POST['action']) {
  16.  
  17. // ---------------------------------------------------------------------------------- //
  18.  
  19. case 'Dodaj':
  20. FilterInputData($link);
  21. FilterInputData($description);
  22. if (empty($link))
  23. $report_id .= '1,';
  24. AddHttp($link);
  25. if (empty($description))
  26. $report_id .= '2,';
  27. if (strlen($link) > 350)
  28. $report_id .= '3,';
  29. if (strlen($description) > 350)
  30. $report_id .= '4,';
  31. $query_p = "SELECT COUNT(id)+1 AS position FROM links";
  32. $result_p = mysqli_query($connect, $query_p);
  33. $position = mysqli_fetch_assoc($result_p);
  34. extract($position);
  35. if(!$result_p)
  36. $report_id = '5,';
  37. mysqli_free_result($result_p);
  38. if(empty($report_id)) {
  39. $query = "INSERT INTO links values (
  40. 'NULL',
  41. '" .$position. "',
  42. '" .$link. "',
  43. '" .$description. "',
  44. '" .MYSQL_DATE. "')";
  45. $result = mysqli_query($connect, $query);
  46. if(!$result)
  47. $report_id = '6,';
  48. }
  49. if (empty($report_id))
  50. $report_id = '7';
  51. echo $report_id;
  52. header("Location: $redirect&link=a&$report=$report_id");
  53. break;
  54.  
  55. // ---------------------------------------------------------------------------------- //
  56. }
  57. break;
  58. }
  59.  

Sorry za lekki chaos w tym (IMG:style_emoticons/default/tongue.gif) Po prostu chciałbym się dowiedzieć czy te rozwiązania są dobre i czy w miare rozsądnie to napisalem.
Z góry dzieki!

Ten post edytował nait 15.09.2011, 14:25:44
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: 22.10.2025 - 15:07