mam taki problemik, mam skrypcik, dzięki, któremu z pola select wybieram sobie rekord, który chce zedytować, wtedy wyświetla mi się formularz, w którym są pobrane dane wybranego rekordu, mam pod to podpięty skrypcik Java Script. Jeżeli sobie cos zmienię i klikne na submit pokaże się komunikat JS : "Dane zostały uaktualnione!" w else mam natomiast skrypcik, który przy nieudanej próbie wyświetli: "Niestet nie udało się". Cały problem polega na tym iż jak np wybiorę rekord z selecta oraz ponownie wybiorę jakis inny to pokaże się komunikat: "Dane zostały uaktualnione" ;/. To ma miejsce w przeglądarce Chrom. W firefoxie niby działa ok - moge kilka razy wybierać z selecta nazwy i dopiero jak kliknę submit to mi wyswietli lub nie komunikat. Proszę o pomoc jak się z tym uporać. Domyślam się, że to wina tego kawałka kodu <select name="id_programu" onchange="this.form.submit()"> dokładnie this.form.submit, jednak jak wykasuję te linijkę to nie będę mógł zmieniać wartości z selecta..
Zamieszczam skrypt PHP, oraz 2 te dwa skrypty JS:
//DEKLARACJA ZMIENNEJ echo' <form action="" method="post"> <select name="id_programu" onchange="this.form.submit()"> <option value="">Wybierz program do edycji:</option>'; $res = mysql_query('select id_programu, nazwa_programu, system_operacyjny from oprogramowanie ORDER BY nazwa_programu'); echo '<option value="'.$row['id_programu'].'"'.($row['id_programu'] == $_GET['id_programu'] ? ' selected="selected"' : '').'>'.$row['nazwa_programu'].' '.$row['system_operacyjny'].'</option>'; echo '</select> <input type="hidden" name="a" value="edit"; </form><br />'; switch ($a) { case 'edit': /* zapytanie do tabeli */ id_programu='$id_programu'") //wyswietlamy wyniki, sprawdzamy, czy zapytanie zwrócilo wartosc wieksza od 0 /* odczytujemy zawartosc wiersza z tabeli */ /* wczytujemy dane do formularza */ /* w formularz znajduja sie ukryte pola "a" z wartoscia "save" i pole "id" z wartoscia zmiennej id */ echo '<form action="" method="post" onSubmit="return confirmSubmit();"> <input type="hidden" name="a" value="save" /> <input type="hidden" name="id_programu" value="'.$id_programu.'" /> <input type="hidden" size="40" name="id_programu" value="'.$r['id_programu'].'" /><br /> <b>Nazwa programu:</b><br /> <input type="text" size="40" name="nazwa_programu" value="'.$r['nazwa_programu'].'" /><br /> <b>Wersja programu:</b><br /> <input type="text" name="system_operacyjny" value="'.$r['system_operacyjny'].'" /><br /> <input type="image" src="graphics/Kopia button_uaktualnij.jpg" alt="Wyslij" value="uaktualnij"> </form>'; } break; case 'edit-selected'; break; case 'save': /* odbieramy zmienne z formularza */ $id_programu = $_POST['id_programu']; // uaktualniamy tabele test o nowe dane ktore wpisalismy do formularza if (mysql_query("UPDATE oprogramowanie SET id_programu='$id_programu', nazwa_programu='$nazwa_programu', system_operacyjny='$system_operacyjny' WHERE id_programu='$id_programu'")) { } } ?>
skrypt "nieudalosie.js"
window.location.reload(); alert("Nie udało się zaktualizować, proszę spróbuj ponownie");
skrypt "alertdanezostalyuaktualnione"
alert("Dane zostały uaktualnione!");