Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript][MySQL][PHP] Problem ze zdarzeniem w Select
nighttrain
post 8.09.2010, 21:25:22
Post #1





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 2.06.2010

Ostrzeżenie: (0%)
-----


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:
  1. $msql = mysql_connect('localhost', 'root', 'qazwsx');
  2. mysql_select_db('komputery');
  3.  
  4. //DEKLARACJA ZMIENNEJ
  5.  
  6. $wynik = mysql_query("SELECT * FROM komputery")
  7. or die('Blad zapytania');
  8.  
  9. echo("<center>");
  10. echo "<table cellpadding=\"7\" border=1>";
  11. echo("<tr>");
  12. echo("<h1>");
  13. <form action="" method="post">
  14. <select name="id_programu" onchange="this.form.submit()">
  15. <option value="">Wybierz program do edycji:</option>';
  16.  
  17. $res = mysql_query('select id_programu, nazwa_programu, system_operacyjny from oprogramowanie ORDER BY nazwa_programu');
  18. while ($row = mysql_fetch_assoc($res))
  19. echo '<option value="'.$row['id_programu'].'"'.($row['id_programu'] == $_GET['id_programu'] ? ' selected="selected"' : '').'>'.$row['nazwa_programu'].' '.$row['system_operacyjny'].'</option>';
  20. echo '</select>
  21. <input type="hidden" name="a" value="edit";
  22. </form><br />';
  23. echo ("</center>");
  24.  
  25. $a = trim($_POST['a']);
  26. $id_programu = trim($_POST['id_programu']);
  27.  
  28. switch ($a) {
  29. case 'edit':
  30. /* zapytanie do tabeli */
  31. $wynik = mysql_query("SELECT * FROM oprogramowanie WHERE
  32. id_programu='$id_programu'")
  33. or die('Blad zapytania');
  34.  
  35. //wyswietlamy wyniki, sprawdzamy, czy zapytanie zwrócilo wartosc wieksza od 0
  36.  
  37. echo '<script type="text/javascript" src="skrypty_java/czyjestespewien.js"></script>';
  38.  
  39. if(mysql_num_rows($wynik) > 0) {
  40. /* odczytujemy zawartosc wiersza z tabeli */
  41. $r = mysql_fetch_assoc($wynik);
  42. /* wczytujemy dane do formularza */
  43. /*
  44.   w formularz znajduja sie ukryte pola "a"
  45.   z wartoscia "save" i pole "id" z wartoscia
  46.   zmiennej id
  47.   */
  48. echo("<center>");
  49. echo ("<h2><b>Prosze uaktualnic dane: </b></h2><br />");
  50. echo '<form action="" method="post" onSubmit="return confirmSubmit();">
  51. <input type="hidden" name="a" value="save" />
  52. <input type="hidden" name="id_programu" value="'.$id_programu.'" />
  53. <input type="hidden" size="40" name="id_programu"
  54. value="'.$r['id_programu'].'" /><br />
  55. <b>Nazwa programu:</b><br />
  56. <input type="text" size="40" name="nazwa_programu"
  57. value="'.$r['nazwa_programu'].'" /><br />
  58. <b>Wersja programu:</b><br />
  59. <input type="text" name="system_operacyjny"
  60. value="'.$r['system_operacyjny'].'" /><br />
  61.  
  62. <input type="image" src="graphics/Kopia button_uaktualnij.jpg" alt="Wyslij" value="uaktualnij">
  63.  
  64. </form>';
  65. echo("</center>");
  66. }
  67. break;
  68.  
  69. case 'edit-selected';
  70. if (empty($id));
  71. break;
  72.  
  73. case 'save':
  74.  
  75. /* odbieramy zmienne z formularza */
  76. $id_programu = $_POST['id_programu'];
  77. $nazwa_programu = trim($_POST['nazwa_programu']);
  78. $system_operacyjny = trim($_POST['system_operacyjny']);
  79.  
  80. // uaktualniamy tabele test o nowe dane ktore wpisalismy do formularza
  81. if (mysql_query("UPDATE oprogramowanie SET id_programu='$id_programu', nazwa_programu='$nazwa_programu', system_operacyjny='$system_operacyjny' WHERE id_programu='$id_programu'")) {
  82.  
  83. echo '<script type="text/javascript" src="skrypty_java/alertdaneuaktualnione.js"></script>';
  84.  
  85. }
  86. else echo '<script type="text/javascript" src="skrypty_java/nieudalosie.js"></script>';
  87. }
  88. ?>


skrypt "nieudalosie.js"
  1. window.location.reload();
  2. alert("Nie udało się zaktualizować, proszę spróbuj ponownie");


skrypt "alertdanezostalyuaktualnione"
  1. alert("Dane zostały uaktualnione!");


Ten post edytował nighttrain 8.09.2010, 21:52:58
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 10:04