Witam,
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
or
die('Blad zapytania');
echo "<table cellpadding=\"7\" border=1>"; <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>'; <input type="hidden" name="a" value="edit";
</form><br />';
$id_programu = trim($_POST['id_programu']);
switch ($a) {
case 'edit':
/* zapytanie do tabeli */
$wynik = mysql_query("SELECT * FROM oprogramowanie WHERE id_programu='$id_programu'")
or
die('Blad zapytania');
//wyswietlamy wyniki, sprawdzamy, czy zapytanie zwrócilo wartosc wieksza od 0
echo '<script type="text/javascript" src="skrypty_java/czyjestespewien.js"></script>';
/* 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 ("<h2><b>Prosze uaktualnic dane: </b></h2><br />"); 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'];
$nazwa_programu = trim($_POST['nazwa_programu']); $system_operacyjny = trim($_POST['system_operacyjny']);
// 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'")) {
echo '<script type="text/javascript" src="skrypty_java/alertdaneuaktualnione.js"></script>';
}
else echo '<script type="text/javascript" src="skrypty_java/nieudalosie.js"></script>'; }
?>
skrypt "nieudalosie.js"
window.location.reload();
alert("Nie udało się zaktualizować, proszę spróbuj ponownie");
skrypt "alertdanezostalyuaktualnione"
alert("Dane zostały uaktualnione!");
Ten post edytował nighttrain 8.09.2010, 21:52:58