![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 29.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam problem z kolejnością operacji... Problem wyglada tak, że: - mam formularz: Kod <form action="jakis_adres?id=<?php echo $_GET['id']; ?>" method="post"> - zmienną pobieraną z bazy danych: Kod $access = $rek['access']; - a w formularzu przyciski zależne od zmiennej: Kod if($access=="1") echo' <div style="position: absolute; left:210px; top:170px; "> <button type=\"submit\" name="button1" disabled=\"disabled\" value="wl">Włącz</button> <button type=\"submit\" name="button2" value="wyl">Wyłącz</button> </div> '; if($access=="0") echo' <div style="position: absolute; left:210px; top:170px; "> <button type=\"submit\" name="button1" value="wl">Włącz</button> <button type=\"submit\" name="button2" disabled=\"disabled\" value="wyl">Wyłącz</button> </div> '; if (isset($_POST['button1'])) { $access = "1"; mysql_query("UPDATE komputery SET access='$access' WHERE id='$idk' ") or die('Błąd zapytania'); } if (isset($_POST['button2'])) { $access = "0"; mysql_query("UPDATE komputery SET access='$access' WHERE id='$idk' ") or die('Błąd zapytania'); } Założenie było następujące. Jak klikam WŁĄCZ to: $access=1 ==> upadate w bazie; strona sie przeładowuje i chcę żeby teraz przycisk WYŁĄCZ był aktywny. Tak się niestety nie dzieje... Muszę odświeżyć stronę, żeby zobaczyć oczekiwany rezultat (tzn żeby odpowiedni przycisk był aktywny). Jak poradzić sobie z tym problemem? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 230 Pomógł: 3 Dołączył: 8.01.2008 Ostrzeżenie: (10%) ![]() ![]() |
Hm, napierw wyświetlasz formularz, później wykonujesz operacje na bazie. Jeżeli klikniesz to włącz, załaduje się najpierw html (te przyciski) a następnie wykona ta operacja na bazie danych.
No i widzę że dajesz zewnętrzną chyba zmienną ($idk) bez żadnego zabezpieczenia - jeżeli jest to podawany przez użytkownika ciąg znaków, poczytaj o SQL Injection. Ten post edytował Apocalyptiq 22.04.2009, 20:21:01 -------------------- http://estender.net - profesjonalne strony i aplikacje internetowe (Ruby on Rails, Kohana PHP)
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Np w tych ifa'ch jesli sie powiedzie operacja dodac cos w stylu:
-------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 29.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Robie tak:
Kod <?php $_GET['id'] = mysql_escape_string($_GET['id']); .... //jakiś kod php +html ?> .... // jakiś kod html <div style="position:relative"> <form action="komputery_lista_details.php?id=<?php echo $_GET['id']; ?>" method="post"> <?php $zap = mysql_query("SELECT * FROM komputery WHERE id='".$_GET['id']."' LIMIT 1;"); $rek = mysql_fetch_assoc($zap); $idk = $_GET['id']; $access = $rek['access']; // kod php + kod html ("reszta" formularza - który ma pobierać tylko dane z bazy danych) //aż dochodzimy do miejsca: <?php if($access=="1") echo' <div style="position: absolute; left:210px; top:170px; "> <button type=\"submit\" name="button1" disabled=\"disabled\" value="wl">Włącz</button> <button type=\"submit\" name="button2" value="wyl">Wyłącz</button> </div> '; if($access=="0") echo' <div style="position: absolute; left:210px; top:170px; "> <button type=\"submit\" name="button1" value="wl">Włącz</button> <button type=\"submit\" name="button2" disabled=\"disabled\" value="wyl">Wyłącz</button> </div> '; if (isset($_POST['button1'])) { $access = "1"; mysql_query("UPDATE komputery SET access='$access' WHERE id='$idk' ") or die('Błąd zapytania'); } if (isset($_POST['button2'])) { $access = "0"; mysql_query("UPDATE komputery SET access='$access' WHERE id='$idk' ") or die('Błąd zapytania'); } ?> EDIT: Aaaa już tak nie robię:PP marcio wielkie dzięki, Twoja metoda pomogła. Super :] Ten post edytował szwabek 22.04.2009, 20:35:36 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 230 Pomógł: 3 Dołączył: 8.01.2008 Ostrzeżenie: (10%) ![]() ![]() |
Czyli najpierw wyświetlasz HTML, a później wykonujesz operacje na bazie - logiczne że przy przycisnięciu włącz na stronie nic się nie zmieni, bo w bazie zmiana zajdzie PO pokazaniu kodu html - po prostu zmień kolejnościami wyświetlanie html i operacje na bazie danych.
-------------------- http://estender.net - profesjonalne strony i aplikacje internetowe (Ruby on Rails, Kohana PHP)
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 29.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Myślałem, że się zorientujesz po mojej odpowiedzi, że jest to ni możliwe.
Skoro wyświetlam html - formularz pobierający dane z bazy... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 06:59 |