Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][AJAX]Autozapis do bazy po opuszczeniu inputa
Forum PHP.pl > Forum > Przedszkole
denis95x
Mam następujący problem.
Nie jestem dobry w ajaxie, ale potrzebuje zrobić auto update po opuszczeniu danego inputa.
Byłoby okej, tylko, że muszę do mieć (tak jakby w pętli) bo każde pole osobno będzie zapisywane.

Problem w tym, że gdy zacząłem to testować, to updatuje mi do bazy, ale pod wszystkie inne rekordy, a ten, który potrzebuje ma wartość 0.
Powinno być, że updatuje tylko żądany rekord. Jak to rozwiązać ?
Pomoże ktoś ?

KOD:

  1.  
  2. while($docs_ed=mysql_fetch_array($res_doc)){
  3.  
  4. $result_art = mysql_query("SELECT * FROM products WHERE id='$docs_ed[id_art]'");
  5. $dane_art=mysql_fetch_array($result_art);
  6. ?>
  7. <script type="text/javascript">
  8.  
  9. $('input[name=r35]').blur(function() {
  10. var r35 = $(this).val();
  11. var id = "<? echo $dane_art[id]; ?>";
  12. var docs = "<? echo $dane_doc[doc]; ?>";
  13. var iddocs = "<? echo $_GET[edit]; ?>";
  14.  
  15.  
  16. $.ajax({
  17. url: "docajax3.php",
  18. type: "POST",
  19. data: 'update35=' + r35 + '&idart=' + id + '&nrdok=' + docs + '&idok=' + iddocs,
  20. success: function(msg) {
  21. $("#kontener3").html(msg);
  22. }
  23. });
  24. });
  25.  
  26. </script>
  27. <?
  28. <tr>
  29. <td align="center">'.$docs_ed[symbol_art].' </td>
  30. <td align="left"><b style="font-size:12px;">'.$dane_art[nazwa].'</b> <br> ';
  31.  
  32.  
  33. if ($dane_art[tab_rozm_id] == '1'){
  34. 35 <input class="sf_small_1" name="r35" id="r35" maxlength="3" value="'.$docs_ed[r35].'" type="text"/>
  35. 36 <input class="sf_small_1" name="r36" id="r36" maxlength="3" type="text"/>
  36. 37 <input class="sf_small_1" name="r37" id="r37" maxlength="3" type="text"/>
  37. 38 <input class="sf_small_1" name="r38" id="r38" maxlength="3" type="text"/>
  38. 39 <input class="sf_small_1" name="r39" id="r39" maxlength="3" type="text"/>
  39. 40 <input class="sf_small_1" name="r40" id="r40" maxlength="3" type="text"/>
  40. 41 <input class="sf_small_1" name="r41" id="r41" maxlength="3" type="text"/>
  41. 42 <input class="sf_small_1" name="r42" id="r42" maxlength="3" type="text"/>
  42. 43 <input class="sf_small_1" name="r43" id="r43" maxlength="3" type="text"/>
  43. 44 <input class="sf_small_1" name="r44" id="r44" maxlength="3" type="text"/><br>
  44. 45 <input class="sf_small_1" name="r45" id="r45" maxlength="3" type="text"/>
  45. 46 <input class="sf_small_1" name="r46" id="r46" maxlength="3" type="text"/>
  46. 47 <input class="sf_small_1" name="r47" id="r47" maxlength="3" type="text"/>
  47. 48 <input class="sf_small_1" name="r48" id="r48" maxlength="3" type="text"/>
  48.  
  49. </tr> ';
  50. }
  51.  
  52. }


PLIK doajax3.php:

  1. <?php
  2.  
  3. require_once ('../pages/db2014.php'); // Połącz się z bazą danych.
  4.  
  5. if($_POST['update35'] != '') {
  6.  
  7. $id = $_POST['idart'];
  8.  
  9. $nrdok = $_POST['nrdok'];
  10.  
  11. $r35 = $_POST['update35'];
  12.  
  13. $idok = $_POST['idok'];
  14.  
  15. $dodaj = mysql_query("UPDATE $nrdok SET r35 = '$r35' WHERE id_art='$id'");
  16.  
  17. echo'<center><font color="green" size="3">Update pomyślnie <br><br>id: '.$id.' | doc: '.$nrdok.' | szt: '.$r35.'
  18. </font>
  19. <a href="index.php?page=documents&edit='.$idok.'"> <button type="button" class="btn btn-warning"><i class="icon-refresh"></i> Odśwież dokument</button></a>
  20. </center><br><br>';
  21. }
  22. ?>


A może ktoś mi podpowie prostsze i łatwiejsze rozwiązanie ?
ilidir
A sprawdzałeś co się dzieje przed wysłaniem danych do AJAX-a questionmark.gifquestionmark.gif Czy twoja zmienna ma już w tym miejscuwartość 0 questionmark.gif?
denis95x
Zmienna posiada odpowiednią wartość jaką wpiszę w inputa - sprawdziłem.

Co ciekawe - updatuje wszystkie rekordy w bazie, a tym co ma updatować daje 0 ohno-smiley.gif

Ma ktoś jakiś pomysł ?
dalej z tym walcze i sobie poradzić nie moge :/
DraGo110
Mała podpowiedź.

Możesz użyć samo-odświeżającego się div'a którego będziesz odświeżał dynamiznie co np. 5,6 sekund.
w tym czasie przekazuj sobie wszystko do zmiennej w javascript.

http://crunchify.com/how-to-refresh-div-co...query-and-ajax/

a tu masz podobne pytanie - wujek google nie gryzie smile.gif

http://stackoverflow.com/questions/1052320...-input-in-array
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.