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:
function OperationReport() {
!empty($_GET['report_l']) && isset($_GET['report_l'])) {
// ---- Links Start ------------------------------------------------------------------------------ //
$reports = explode(',', $_GET['report_l']); foreach($reports as $value) {
switch ($value) {
// --- Dodaj --------------------------------------------------------------------- //
case '1': //
$report[1][] = "Pole link nie może być puste";
$report[1][] = 0; // 0 - niepowodzenie operacji, 1 - operacja pomyślnie wykonana
break;
case '2': //
$report[2][] = "Pole opis nie może być puste";
$report[2][] = 0;
break;
case '3': //
$report[3][] = "Link nie może przekroczyć 350 znaków";
$report[3][] = 0;
break;
case '4': //
$report[4][] = "Opis nie może przekroczyć 350 znaków";
$report[4][] = 0;
break;
case '5': //
$report[5][] = "Błąd podczas ustalania pozycji linku";
$report[5][] = 0;
break;
case '6': //
$report[6][] = "Nie można dodać linku do bazy";
$report[6][] = 0;
break;
case '7': //
$report[7][] = "Link dodany do bazy";
$report[7][] = 1;
break;;
// --- Edytuj --------------------------------------------------------------------- //
}
}
foreach ($report as $value){
echo "<div style=\"width:100%;background-color:" . ($value[1] ?
'#628f3d' : '#b02f2f') . ";padding:4px;\">$value[0]</div>\n"; }
}
}
i przykład strony transakcji:
// Zamiana kluczy z $_POST na zmienne
// $_POST['$klucz'] na $klucz
foreach ($_POST as $key => $value) {
$$key = $value;
}
switch ($_GET['p']) {
// ================================================================================
=============== //
// ---- Links Start ------------------------------------------------------------------------------ //
case 'links':
$report = 'report_l';
$redirect = '../admin.php?p=links';
$report_id = '';
switch ($_POST['action']) {
// ---------------------------------------------------------------------------------- //
case 'Dodaj':
FilterInputData($link);
FilterInputData($description);
$report_id .= '1,';
AddHttp($link);
$report_id .= '2,';
$report_id .= '3,';
if (strlen($description) > 350
) $report_id .= '4,';
$query_p = "SELECT COUNT(id)+1 AS position FROM links";
$result_p = mysqli_query($connect, $query_p);
$position = mysqli_fetch_assoc($result_p);
if(!$result_p)
$report_id = '5,';
mysqli_free_result($result_p);
$query = "INSERT INTO links values (
'NULL',
'" .$position. "',
'" .$link. "',
'" .$description. "',
'" .MYSQL_DATE. "')";
$result = mysqli_query($connect, $query);
if(!$result)
$report_id = '6,';
}
$report_id = '7';
header("Location: $redirect&link=a&$report=$report_id"); break;
// ---------------------------------------------------------------------------------- //
}
break;
}
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