Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX][PHP][MySQL] brak polskich znaków w bazie
Forum PHP.pl > Forum > Przedszkole
smiesznylolek
mam taki problem, mam formularz zapisujący do bazy dane z pól. I mam następujący problem, po zapisie danych z tego formularz w bazie, nie ma polskich znaków, tylko jakieś dziwne znaczki w stylu żźłą. w bazie mam kodowanie utf8. Mam jeszce formularz edycji w czystym php i w nim robię edycję to zapisują się normalnie polskie znaki, jenak przy tym formularzu występuje ten problem, z tymi znakami...

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  5. <title>Dodawaj</title>
  6. <script src="http://code.jquery.com/jquery-latest.js"></script>
  7. include("config.php");
  8. include("function.php");
  9. top("Dodaj");
  10. menu();
  11. ?>
  12.  
  13. <script type="text/javascript">
  14. $(document).ready(function(){
  15. $("form#submit").submit(function() {
  16. if($('#tytul_oryginalny').val()==''){
  17. alert('Podaj oryginalny tytuł');
  18. return false;
  19. }
  20.  
  21. if($('#tytul_polski').val()==''){
  22. alert('Podaj polski tytul');
  23. return false;
  24. }
  25.  
  26. if($('#rezyser').val()==''){
  27. alert('Podaj reżysera');
  28. return false;
  29. }
  30.  
  31.  
  32. if($('#scenariusz').val()==''){
  33. alert('Podaj scenarzyste');
  34. return false;
  35. }
  36.  
  37.  
  38. if($('#rok_produkcji').val()==''){
  39. alert('Podaj rok produkcji');
  40. return false;
  41. }
  42.  
  43.  
  44. if($('#czas_trwania').val()==''){
  45. alert('Podaj czas trwania');
  46. return false;
  47. }
  48.  
  49. if($('#cena').val()==''){
  50. alert('Podaj cenę');
  51. return false;
  52. }
  53.  
  54.  
  55.  
  56.  
  57. // Przechwytujemy wartości z formularza i przesyłamy je do pliku insert.php
  58. var tytul_oryginalny = $('input[name=tytul_oryginalny]');
  59. var tytul_polski = $('input[name=tytul_polski]');
  60. var rezyser = $('input[name=rezyser]');
  61. var scenariusz = $('input[name=scenariusz]');
  62. var rok_produkcji = $('input[name=rok_produkcji]');
  63. var czas_trwania = $('input[name=czas_trwania]');
  64. var cena = $('input[name=cena]');
  65. var opis = $('textarea[name=opis]');
  66. // Jeżeli pole jest puste wyświetlamy błąd i nie dodajemy rekord
  67. var gatunek = $('input[name="gatunek[]"]:checked');
  68. var gatunek_data_string = '';
  69. gatunek.each(function() {
  70. gatunek_data_string += '&gatunek[]=' + $(this).val();
  71. });
  72. var jezyk = $('input[name="jezyk[]"]:checked');
  73. var jezyk_data_string = '';
  74. jezyk.each(function() {
  75. jezyk_data_string += '&jezyk[]=' + $(this).val();
  76. });
  77.  
  78. var data = '&tytul_oryginalny=' + tytul_oryginalny.val() + '&tytul_polski=' + tytul_polski.val() +
  79. '&rezyser=' + rezyser.val() + '&scenariusz =' + scenariusz .val() +
  80. '&rok_produkcji=' + rok_produkcji.val() + '&czas_trwania=' + czas_trwania.val() +
  81. '&cena=' + cena.val() + gatunek_data_string + jezyk_data_string + '&opis=' + opis.val();
  82.  
  83.  
  84. $.ajax({
  85. type: "POST",
  86. url: "insert.php",
  87. data: data,
  88. success: function(){
  89. $('#tytul_polski').val('');
  90.  
  91.  
  92. $('#tytul_oryginalny').val('');
  93.  
  94.  
  95. $('#rezyser').val('');
  96.  
  97.  
  98. $('#scenariusz').val('');
  99.  
  100.  
  101. $('#rok_produkcji').val('');
  102. $('#czas_trwania').val('');
  103. $('#cena').val('');
  104.  
  105. $('form input[type=checkbox]').attr('checked', false);
  106. $('#opis').val('');
  107. }
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115. });
  116. return false;
  117. });
  118. });
  119. </script>
  120. </head>
  121. <body>
  122.  
  123.  
  124. <div id="form">
  125. <form id="submit" method="post" name="submit" action="" >
  126. <table>
  127. <tr class="tlo-b"><td>Tytul oryginalny:</td>
  128. <td><input type="text" name="tytul_oryginalny" id="tytul_oryginalny" /></td></tr>
  129. <tr class="tlek"><td>Tytul polski:</td>
  130. <td><input type="text" name="tytul_polski" id="tytul_polski" /></td></tr>
  131. <tr class="tlo-b"><td>Reżyser:</td>
  132. <td><input type="text" name="rezyser" id="rezyser" /></td></tr>
  133. <tr class="tlo-b"><td>Scenariusz:</td>
  134. <td><input type="text" name="scenariusz" id="scenariusz" /></td></tr>
  135. <tr class="tlek"><td>Rok produkcji:</td>
  136. <td><input type="text" name="rok_produkcji" id="rok_produkcji" /></span></td></tr>
  137. <tr class="tlo-b"><td>Czas trwania:</td>
  138. <td><input type="text" name="czas_trwania" id="czas_trwania" /></td></tr>
  139. <tr class="tlo-b"><td>Cena:</td>
  140. <td><input type="text" name="cena" id="cena" /></td></tr>
  141. <tr class="tlo-b"><td>Gatunek:</td>
  142. <td><form name="gatunek" id="gatunek">
  143. <? pobierzG(); ?>
  144. </form>
  145. </td></tr>
  146. <tr class="tlo-b"><td>Język:</td>
  147. <td><form name="jezyk">
  148. <? pobierzJ(); ?>
  149. </form>
  150. </td></tr>
  151. <tr class="tlo-b"><td>Opis:</td>
  152. <td><textarea cols="35" rows="10" name="opis" id="opis"></textarea> </td></tr>
  153. <button type="submit" id="submit"> Dodaj użytkownika </button>
  154. <tr><td colspan="2" align="center"><input type="submit" value="Dodaj" /></td></tr>
  155. </table></form>
  156. </div>
  157.  
  158. <?php
  159. }else{
  160. echo "Nie jesteś zalogowany!";
  161. }
  162. down();
  163. ?>
  164.  
  165.  
  166.  
  167.  
mortus
Kodowanie dokumentu (X)HTML to utf-8.
1. Sprawdź kodowanie pliku (PSPad, Notepad++).
2. Upewnij się, że w pliku odpowiedzialnym za połączenie z bazą danych masz taki lub podobny fragment kodu:
  1. $link = mysql_connect('username', 'passowrd');
  2. mysql_select_db('database');
  3. mysql_query("SET NAMES 'utf8'");

Istotne jest wykonanie zapytania SET NAME 'utf8'.
smiesznylolek
to mój config
  1. <?php
  2. mysql_connect("localhost","root","ka") or die(mysql_error()."Nie mozna polaczyc sie z baza danych. Prosze chwile odczekac i sprobowac ponownie.");
  3. mysql_select_db("wypozyczalnia") or die(mysql_error()."Nie mozna wybrac bazy danych.");
  4. mysql_query("SET CHARACTER SET utf8");
  5. mysql_query("SET NAMES 'utf8'");
  6.  
  7. ?>

co do tego kodowania to nie wiem czy dokladnie o to chodzi ale uzywam dreamwevera i tam mam wybrane
Unicode normalization form: C (Canonical Decomposition, followed by Canonical Composition)

ale problem jest tylko przy dodawaniu z tego formularza z jquery, bo jak pobieram i wyswietlam coś z bazy to normalnie są polskie znaki... nie mam pojęcia o co chodzi...

czy ma ktoś jakiś pomysł jak to rozwiązać?
lukaszrw
zadeklaruj w <form> kodowanie
<form accept-charset="utf-8">
... może łyknie
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.