redirect, a wyświetlanie komunikatów na stronie

0

Witam. Mam dość przyziemny problem, mianowicie, gdy wykonuje funkcję redirect celem odświeżenia strony po na przykład usunięciu rekordu, aby pokazywała się już ich grupa bez tego usuniętego, nie pokazuje się komunikat o usunięciu, jednak gdy nie stosuję redirecta komunikat się wyświetla, lecz rekordy pokazywane są razem z tym usuniętym, dopiero po odświeżeniu strony znika.

1
Krzywy Samiec napisał(a):

Witam. Mam dość przyziemny problem, mianowicie, gdy wykonuje funkcję redirect celem odświeżenia strony po na przykład usunięciu rekordu, aby pokazywała się już ich grupa bez tego usuniętego, nie pokazuje się komunikat o usunięciu [...]

Musisz pokazać w jaki sposób te komunikaty generujesz.

Krzywy Samiec napisał(a):

[...] jednak gdy nie stosuję redirecta komunikat się wyświetla, lecz rekordy pokazywane są razem z tym usuniętym, dopiero po odświeżeniu strony znika.

Zapewne najpierw wyciągasz dane do wyświetlenia z bazy a następnie usuwasz wybrany rekord. Powinieneś robić odwrotnie.

Tak czy siak, bez kodu niewiele można podpowiedzieć...

0
//formularz
if(isset($_POST['roles'.$row['id'].'']))
				{
$view = new VIEW();
					$stmt=$this->db->prepare('szablon_zapytania');
					$stmt->bindParam('bindowanie_parametrów');
					$stmt->execute();
					$count_roles = $stmt->rowCount();
					if($count_roles>0)
					{
						$errors .= 'warunek';
						$view -> vall_view($errors);
					}else if($count_roles==0)
					{
						$stmt=$this->db->prepare('usuwanie');
						$stmt->bindParam(':id',$row['id']);
						$stmt->execute();
					//wyswietlanie
						$view->admin_change_roles($row['id'], $row['roles_name']);
					}
0

Chodzi o to że gdy chcę wyświetlić warunek a później zrobić redirect to warunek się nie wyświetla
Przykład:

				$this->redirect('strona.php');
						$errors .= 'Usunięto';
						$view -> vall_view($errors);
0

Ktoś wie w czym jest problem ?

0

Czy Ty chcesz usunąć rekord w sytuacji w której nie masz żadnego rekordu w bazie? Dobrze to rozumiem?

Ten warunek jest słabo zbudowany. Lepiej coś takiego

if($count_roles === 0){
    ...  
}else{
    ...
}
0

Chodzi o to że w bazie nie może być wartości, którą użytkownika przesyła formularzem. Jeśli wartości nie ma, usuwaj, jeśli jest, wyświetlaj komunikat. W binderze jako parametr daję zmienną przesyłaną postem.

0

Według mnie może nie działać, ponieważ jak wykonujesz instrukcję $this->redirect('strona.php'); to te dwie następne instrukcje się nie wykonują może weź coś metoda get przekaż te parametry.

                $this->redirect('strona.php?error=blad');
0

Faktycznie, nie pomyślałem o tym, wystarczy po wciśnięciu przycisku usuń, przypisać do zmiennej $errors wartość 'Usuń', przenieść z getem ?errors='.$errors.' na ową stronę i poza foreach dać warunek, że jeśli jakaś wartość jest przypisana do zmiennej $errors, wyświetl ją.
Dzięki za pomoc.

0

Z drugiej jednak strony, to rozwiązanie na bardzo krótką metę, mając w gecie, całą zmienną, klient może sobie wpisać tam cokolwiek i zostanie to zwrócone na ekranie, albo nawet może to zawiesić serwer...

To już wolę nie wyświetlać tego usuń.

1 użytkowników online, w tym zalogowanych: 0, gości: 1