Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP+Baza danych] zapisanie danych do bazy po zmianie wartości w polu tekstowym formularza
prostepc
post 6.08.2014, 08:29:22
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 6.08.2014

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


Witam,

Potrzebuję pomocy w naświetleniu działania skryptu php w połączeniu z ajaxem pozwalającego na aktualizację wartości
w bazie danych po każdorazowej zmianie wartości lub zawartości pola w formularzu.

Przyznam że jestem początkujący jeśli chodzi o ajaxa. Wiem że za pomocą funkcji ajaxa wywołuje się plik np php który powinien być wykonany ale nie wiem jak
wykonać przypisanie zmiennych z formularza do takiego pliku.
Go to the top of the page
+Quote Post
Turson
post 6.08.2014, 08:32:28
Post #2





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Event na change(), pobierasz $(this).val() i ajaxem robisz request
Go to the top of the page
+Quote Post
prostepc
post 6.08.2014, 11:54:22
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 6.08.2014

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


Czy to ma wyglądać mniej więcej tak?
Chcę wysyłać dane metodą POST przez ajaxa i jeśli dobrze rozumiem po przesłaniu nagłówka będę mógł odczytać zmienną POST i wartość tej zmiennej, poprzez
$_POST[zmienna]. Tylko problem widzę w tym że nazwy zmiennych w formularzu są generowane dynamicznie na podstawie pętli.





  1.  
  2. <head>
  3. <title>Bez nazwy</title>
  4. <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
  5. <meta http-equiv="Content-Language" content="pl" />
  6. <meta name="Generator" content="JTHTML 8.4.1" />
  7. <meta name="Robots" content="index" />
  8. <script type="text/javascript">
  9.  
  10. function getXMLHttpRequest() {
  11. var request = false;
  12. try {
  13. request = new XMLHttpRequest();
  14. } catch(err1) {
  15. try {
  16. request = new ActiveXObject('Msxml2.XMLHTTP');
  17. } catch(err2) {
  18. try {
  19. request = new ActiveXObject('Microsoft.XMLHTTP');
  20. } catch(err3) {
  21. request = false;
  22. }
  23. }
  24. }
  25. return request;
  26. }
  27.  
  28.  
  29. function zapis_do_bazy() {
  30. var zmienna1;
  31. req1;
  32. zmienna=$(this).val(nazwa);
  33. req1 = getXMLHttpRequest();
  34. req1.open('POST', 'formularz_ajax.php',true);
  35.  
  36. req1.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  37. req1.onreadystatechange=funkcja;
  38.  
  39. return
  40. }
  41.  
  42.  
  43. // <![CDATA[
  44.  
  45. // ]]>
  46. </script>
  47. </head>
  48. <body>
  49.  
  50. <form action="" method="post">
  51.  
  52. <select name="nazwa" onChange="zapis_do_bazy()">
  53. <option value="1">1</option>
  54. <option value="2">2</option>
  55. <option value="3">3</option>
  56. <option value="4">4</option>
  57.  
  58. </select>
  59. </form>
  60.  
  61.  
  62.  
  63. </body>
  64. </html>
  65.  
  66.  
  67.  
Go to the top of the page
+Quote Post
Turson
post 6.08.2014, 12:19:58
Post #4





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Moja podpowiedź o $(this).val(nazwa) odnosiła się do jQuery, a nie masz.
Nazwę zmiennej możesz wpisać sztywno, a jej wartość będzie dynamiczna
Go to the top of the page
+Quote Post
prostepc
post 6.08.2014, 14:05:55
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 6.08.2014

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


chodzi właśnie o to że nazwa pola w formularzu musi być nadawana dynamicznie z bazy. Wszystko jest pobierane z bazy sortowane i wyświetlane dynamicznie
w pętli while. Teraz działa to tak że potem jest zapisywane po kliknięciu przycisku wyślij ze skryptu. A chodzi mi o to żeby po zmianie wartosci pola w formularzu np. <select>
automatycznie wykonywał się skrypt w tle porównania i updatu wartosci pola do bazy danych. Wiem że to jest możliwe przy pomocy ajaxa ale jestem mocno początkujący z ajaxem.
To jest dobre rozwiązanie ale jeśli chce się zrobić logowanie na sesjach w php to w sytuacji dłuższego wypełniania formularza z jakiegoś powodu zdarza się że wszystko jest niby ok a dane nie są zapisywane do bazy przy kliknięciu przycisku wyślij. Chce zrobić zabezpieczenie przed tego typu wariantami błędu i zapisywać dane zaraz po zmianie wartości pola w formularzu.


Ten post edytował prostepc 7.08.2014, 06:51:23
Go to the top of the page
+Quote Post

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: 24.04.2024 - 02:18