Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript][MySQL][PHP] Problem ze zdarzeniem w Select
nighttrain
post
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
 
Start new topic
Odpowiedzi
nighttrain
post
Post #2





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

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


Niestety, ani ta metoda z jquery, ani zwykła nie wdraża nic nowego (nic się nie dzieje), jest tak jak poprzednio. Pokaże cały kod z zastosowaniem Twoich rad:

  1. <?php
  2.  
  3. $msql = mysql_connect('localhost', 'root', 'qazwsx');
  4. mysql_select_db('komputery');
  5.  
  6. //SEKCJA IMPLEMENTACJI KODU DLA DELETE (DEL)
  7. $a = "";
  8. if (!empty($_GET['a']))
  9. {
  10. $a = trim($_GET['a']);
  11. $id = trim($_GET['id']);
  12. }
  13. elseif(!empty($_REQUEST['a']))
  14.  
  15. {
  16. $a = trim($_REQUEST['a']);
  17. $id = trim($_GET['id']);
  18. }
  19. if($a != "")
  20. {
  21. if($a == 'del' and !empty($id)) {
  22.  
  23. /* usuwamy rekord */
  24. if (mysql_query("DELETE FROM rel_komputer_oprogramowanie WHERE id='$id'")) {
  25.  
  26. echo '<script type="text/javascript" src="skrypty_java/alertdaneuaktualnione.js"></script>';
  27. }
  28.  
  29. }
  30.  
  31. if($a == 'edit' and !empty($id)) {
  32.  
  33. $wynik = mysql_query("SELECT komputery.nazwa_komputera, oprogramowanie.nazwa_programu, oprogramowanie.system_operacyjny, rel_komputer_oprogramowanie.komputer_id, rel_komputer_oprogramowanie.program_id, rel_komputer_oprogramowanie.zainstalowany FROM komputery, oprogramowanie, rel_komputer_oprogramowanie WHERE komputery.id = rel_komputer_oprogramowanie.komputer_id AND oprogramowanie.id_programu = rel_komputer_oprogramowanie.program_id AND rel_komputer_oprogramowanie.id='$id'")
  34. or die('Blad zapytania');
  35.  
  36. echo '<script type="text/javascript" src="jquery/confirmSubmit.js"></script>';
  37. if(mysql_num_rows($wynik) > 0) {
  38.  
  39. $r = mysql_fetch_assoc($wynik);
  40.  
  41. echo('<a name="edit"><br></a>');
  42. echo '<form action="usunrelacyjna.php" method="post" name="form_submit_update">
  43. <input type="hidden" name="a" value="save" />
  44. <input type="hidden" name="komputer_id" value="'.$r['komputer_id'].'" />
  45. <input type="hidden" name="program_id" value="'.$r['program_id'].'" />
  46. <input type="hidden" name="id" value="'.$id.'" />
  47. <h2>Prosze zedytować dane:</h2><br />
  48. <b>Nazwa Komputera:</b><br />
  49. <input type="text" size="50" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid #red" name="komputer_name"value="'.$r['nazwa_komputera'].'" /><br />
  50. <b>Nazwa Programu:</b><br />
  51. <input type="text" size="50" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid #red" name="program_name"
  52. value="'.$r['nazwa_programu'].'" /><br />
  53. <b>Wersja programu:</b><br />
  54. <input type="text" size="50" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid #red" name="program_name"
  55. value="'.$r['system_operacyjny'].'" /><br />
  56. <b>Zainstalowany:</b><br />
  57. <input type="text" size="50" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid #red" name="zainstalowany"
  58. value="'.$r['zainstalowany'].'" /><br />
  59. <input type="image" src="graphics/Kopia button_uaktualnij.jpg" alt="Wyslij" value="popraw" onClick="confirmSubmit();">
  60. </form>';
  61. }
  62. }
  63. elseif($a == 'save') {
  64. /* odbieramy zmienne z formularza */
  65. $komputer_id = $_POST['komputer_id'];
  66. $program_id = trim($_POST['program_id']);
  67. $system_operacyjny = $_POST['system_operacyjny'];
  68. $id = trim($_POST['id']);
  69. $zainstalowany = trim($_POST['zainstalowany']);
  70.  
  71. /* uaktualniamy tabele test o nowe dane ktore wpisalismy do formularza*/
  72. mysql_query("UPDATE rel_komputer_oprogramowanie SET komputer_id='$komputer_id', program_id='$program_id' WHERE komputer_id='$komputer_id'")
  73. or die('Blad zapytania');
  74. mysql_query("UPDATE rel_komputer_oprogramowanie SET zainstalowany='$zainstalowany' WHERE id='$id'") or die('Blad zapytania');
  75.  
  76. echo nl2br("\n");
  77. echo 'DANE ZOSTALY POPRAWNIE ZAKTUALIZOWANE!';
  78. echo '<script type="text/javascript" src="skrypty_java/reloadsite.js"></script>'; // przeładowuje stronę, aby odświerzyć wyniki
  79. }
  80. }
  81.  
  82. $wynik = mysql_query("SELECT komputery.nazwa_komputera, oprogramowanie.nazwa_programu, oprogramowanie.system_operacyjny, rel_komputer_oprogramowanie.id, rel_komputer_oprogramowanie.zainstalowany FROM komputery, oprogramowanie, rel_komputer_oprogramowanie WHERE komputery.id = rel_komputer_oprogramowanie.komputer_id AND oprogramowanie.id_programu = rel_komputer_oprogramowanie.program_id ORDER BY nazwa_programu")
  83. or die('Blad zapytania');
  84.  
  85. //jezeli wynik jest pozytywny > 0, to wyswietlamy dane
  86.  
  87. echo "<table cellpadding=\"0\" cellspacing=\"0\" border=1>";
  88. echo "<tr><td colspan=4 bgcolor=\"#a7a7a7\"><b>Programy zainstalowane na danych komputerach</b></td></tr>";
  89. $deinstalled = 0;
  90. echo "<tr class='colheader'><th nowrap class='colheader' valign='top' align='left'>Operacja</th>";
  91. echo "<th nowrap class='colheader' valign='top' align='left'>Nazwa programu</th>";
  92. echo "<th nowrap class='colheader' valign='top' align='left'>Wersja programu</th>";
  93. echo "<th nowrap class='colheader' valign='top' align='left'>Powiazanie z</th>";
  94. echo "</tr>";
  95. while($r = mysql_fetch_assoc($wynik)) {
  96. if($deinstalled == 0 and $r['zainstalowany'] == 0)
  97. {
  98. echo "<tr><td colspan=4 bgcolor=\"#a7a7a7\"><b>Programy odinstalowane</b></td></tr>";
  99. $deinstalled = 1;
  100. }
  101. echo "<tr>";
  102. echo "<td>";
  103. echo "<a href=\"usunrelacyjna.php?a=del&amp;id={$r['id']}#edit\">WYKASUJ WPIS</a>
  104. </td>";
  105. echo "<td>".$r['nazwa_programu']."</td>";
  106. echo "<td>".$r['system_operacyjny']."</td>";
  107. echo "<td>".$r['nazwa_komputera']."</td>";
  108.  
  109. echo "</tr>";
  110. }
  111. echo "</table>";
  112. ?>
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 9.10.2025 - 01:40