nevar
16.04.2006, 23:30:37
Chcę aby w skrypcie php przed usunięciem danego rekordu z bazy pojawiło mi się potwierdzenie wykonania tej operacji. Jak to najprościej zrobić??
envp
16.04.2006, 23:36:42
Możesz napisać sobie klase i użyć funkcji _destruct, która odpala się kiedy obiekt jest usówany...
popo
16.04.2006, 23:41:50
jezeli chcesz aby user potwierdzil ze napewno chce usunac taki a taki rekord radze stworzyc osobna stronke na ktora przekazujesz id rekordu do skasowania
na stronce wyswietlasz ten rekord i przy pomocy formularza pytasz czy aby napewno jesli user kliknie tak to usuwasz jesli nie to wracasz do strony z ktorej formularz kasowania byl wywolany
mike
16.04.2006, 23:43:40
~envp kompletnie chyba nie masz pojącia jak działa i do czego służy __destruct()
Jak masz pisać głupoty to nie pisz nic.
~nevar masz zapewne jakiś link/button który nosi znamienitą nazwę "Usuń". Więc masz dwa wyjścia:
1. Możesz dodać potwierdzenie JavaScript przy kliknięciu. Zwykły confirm [OK] [Anuluj]
2. Twój link nie musi od razu prowadzić do usunięcia elementu, możesz wprowadzić pośredni ekran na którym bede dwa linki/przyciski [OK] [Anuluj] Anuluj będzie działał jak powrót, Ok zaprowadzi do właściwej lokalizacji gdze usuniesz element.
nevar
16.04.2006, 23:47:34
Wygląda to tak:
<?php
print '<input type="button" value="Usuń" onclick="window.location='usun.php?id='.$pytanie['id'].''" />'; ?>
Jak mam teraz tu umieścić to potwierdzenie?
mike
16.04.2006, 23:53:05
No kurcze, ale trochę samodzielności.
Próbowałeś chociaż coś zrobić?
google.pl :: search :: javascript+confirm<a href="http://google.pl" onclick="return confirm( 'Are you sure you wish to continue?' );">Chcesz wyświetlić google.pl ?
</a>
Przenoszę do
Przedszkola.
TomASS
16.04.2006, 23:55:58
<?
echo '<input type="button" value="Usuń" onClick="if(window.confirm('Czy na pewno usunąć ?')){window.location='usun.php?id='.$pytanie['id'].'';}">'; ?>
nevar
17.04.2006, 00:02:13
Dzięki TomASS!
envp
19.04.2006, 19:44:10
mike_mech, słucham? Jeżeli uważasz, że tego na obiektach i metodzie _destruct nie da sie rozwiązać to chyba Ty nie masz pojęcia o czym piszesz... Pozdrawiam
devnul
19.04.2006, 20:08:18
mike_mech wie o czym pisze i tego za pomocą metody _destruct nie da się zrobić! A jeśli jesteś na tyle genialny i twierdzisz inaczej, to udowodnij swoją rację i zaprezentuj taki kod - może wszyscy powinniśmy się od Ciebie uczyć.
envp
19.04.2006, 21:29:04
<?php
class rekord {
private $hDB;
private $user = 'user';
private $password = 'pass';
private $database = 'baza';
private $yes_delete = false;
public function _construct($rekord_id) {
$this->hDB = mysql_connect("localhost", $this->user, $this->password); }
public function yes_delete($state) {
if($state)
$this->yes_delete = true;
else
$this->yes->delete = false;
}
public function _destruct() {
if(! $this->yes_delete){
echo "czy napewno usunac ? "; echo "<a href=\"?act=yes\">Tak</a>"; }
else {
$query = "delete from tabela where id=$this->rekord_id";
}
}
}
$objRekord = new rekord(2);
$act = $_GET['act'];
if($act='yes') $objRekord->yes_delete(true);
?>
Proszę...
O mamusiu, nie pisz takich herezji tutaj. Twój przykład działa, oczywiście, ale jest zupełnie nie w duchu obiektowości. Nie ucz ludzi na forum takich nawyków. Później, gdy poznasz zasady zaawansowanego programowania (np. wzorce) php, wspomnisz moje słowa.
P.S. W dobrym tonie jest używać _destruct do m. in. zamykania połączenia z bazą, unlockowania plików. A w twoim przykładzie równie dobrze, możnaby użyc dodatkowej metody (nawiasem mówiąc: gdzie jest mysql_close?).
envp
19.04.2006, 21:47:13
Dobra juz dobra

Moze jeszcze leszczem jestem

a tak btw. co jest nie tak ?
luinnar
19.04.2006, 21:49:58
Całość.
Pisanie takiej kasy mija się z celem. Będziesz usuwał ten rekord po zakończeniu skryptu bo wtedy odpalają się wszystkie destruktory. Niezależnie czy ktoś kliknie anuluj czy zamknie okno.
envp
19.04.2006, 21:51:13
hm, no racja
devnul
19.04.2006, 22:09:22
@LBO: mimo iż zgadzam się z Twoją opinią na temat kodu jaki podał
envp to jednak to:
Cytat
nawiasem mówiąc: gdzie jest mysql_close?
to już czepianie się, bo "zaawansowane programowanie" wcale nie wymaga zamykania połączenia z bazą danych
Cytat
"zaawansowane programowanie" wcale nie wymaga zamykania połączenia z bazą danych
To, że zamykanie połączenia z Bazą Danych nie jest wymagane, nie znaczy, że nie powinieneś tego używać. Moim zdaniem takie niuanse świadczą o programiście jak najlepiej.
P.S. Słyszałeś o limitach jednoczesnych połączeń np. mySQL?
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.