Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przy próbie prznoszenia zmiennej do skryptu ajaxowego pojawia się zawsze taka sama wartość
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
tomi0001
Mam taki problem mam skrypt, który wybiera dane z bazy i każdego dnia wybiera je z bazy np. dla dnia 20 maja wybierze rekordy z 20 a z 30 maja rekordy z 30 maja i teraz jest problem polegający na tym, że mam pole typu textarea do prowadzenia zmień w polu w bazie danych i problem polega na tym, że to zawsze doda wartość do pierwszego rekordy jakiegoś dnia np. i to jest prze ze mnie potwierdzone bo ja przysyłam do skryptu ajaxowego zawsze wartość pola id w bazie danych to zawsze wydrukuje mi id z pierwszego dnia pomimo tego iż rekord jest połowie dnia.
Ta wygląda skrypt który dodaje to wartość

  1. <?php
  2. header('Content-Type: text/html; charset=utf-8');
  3. require("./clasy/config.php");
  4. require("./funkcje.php");
  5.  
  6. polacz_z_baza();
  7. mysql_query("SET NAMES utf-8");
  8. // mysql_query("SET NAMES utf8");
  9. //mysql_select_db("seomat_1");
  10.  
  11. $id2 = urldecode($_GET["id2"]);
  12. $opis3 = urldecode($_GET["opis3"]);
  13.  
  14. $id2 = atak_sql($id2);
  15. $opis3 = atak_sql($opis3);
  16.  
  17. print $id2;
  18.  
  19. $wybierz = mysql_query("select opis_spozycia from spozycie where id = '$id2' ");
  20. $wybierz = mysql_fetch_array($wybierz);
  21.  
  22. //$wybierz1 = str_replace("\n","<br>",$wybierz[0]);
  23. $opis3 = str_replace("\n","<br>",$opis3);
  24.  
  25. $wybierz2 = $wybierz[0] . "<br>" . $opis3;
  26.  
  27. $a = mysql_query("update spozycie set opis_spozycia = '$wybierz2' where id = '$id2' ");
  28.  
  29. if ($a == false) {
  30. print "Nie udało się dodać";
  31. }
  32. else {
  33. print "Pomyślnie dodano rekord";
  34. }



tak wygląda fragment kodu odpowiadającego za przysyłanie danych do formularza.

  1. <a href=\"#\" onclick=\"java script:HideContent('textBlock-$uzywki2[0]');\" class=pokazywanie>ukryj opis</a>
  2. <a href=\"#\" onclick=\"java script:ShowContent('textBlock-$uzywki2[0]');\" class=pokazywanie>pokaz opis</a>
  3. </div>
  4. </td>
  5. </tr>",$wynik3);
  6. print ("<tr>
  7. <td><div id=\"textBlock-$uzywki2[0]\" style='display:none;'>
  8. <form method=post><input type=hidden id = id2 value=$uzywki2[0]><div align=center><font class=dodaj>Opis</font><br><textarea id=opis3 cols=50 rows=5></textarea><br><input type = \"button\" value =\"Dodaj\"
  9. onclick = \"getData3('dodaj2.php',
  10. 'TargetDiv2$i')\">
  11. </div><div id=TargetDiv2$i>
  12. </div>
  13. </div></form>
  14.  
  15. </td></tr>");


A tak wygląda funkcja ajaxowa
Musiałem to sac w znaczniki PHP bo nie było javascriptu
  1. function getData3 (dataSource, divID) {
  2. if(XMLHttpRequestObject) {
  3. var obj = document.getElementById(divID);
  4.  
  5. var opis3 = document.getElementById('opis3').value;
  6. var id2 = document.getElementById('id2').value;
  7. XMLHttpRequestObject.open("GET", dataSource + "?id2=" + id2 + "&opis3=" + opis3 );
  8. XMLHttpRequestObject.onreadystatechange = function ()
  9. {
  10. if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
  11.  
  12. //document.write("sfdsf");
  13. /*if (setInterval("load",1000) ) {
  14.   obj.innerHTML = XMLHttpRequestObject.responseText;
  15.   }*/
  16. //while (setInterval("load",1000) ) {
  17. obj.innerHTML = XMLHttpRequestObject.responseText;
  18.  
  19. //document.forms["form"].submit();
  20. //}
  21. }
  22. }
  23. XMLHttpRequestObject.send(null);
  24. //document.write("sfdsf");
  25. }
  26. }/*


Wcześniej miałem taką funkcję, ale przeniosłem się na tą wyżej bo myślałem, że to wina funkcji
Musiałem to sac w znaczniki PHP bo nie było javascriptu
  1. function getData3 (dataSource, divID) {
  2. if(XMLHttpRequestObject) {
  3. var obj = document.getElementById(divID);
  4. var opis3 = document.getElementById('opis3').value;
  5. var id2 = document.getElementById('id2').value;
  6.  
  7. XMLHttpRequestObject.open("POST", 'dodaj2.php', true);
  8. XMLHttpRequestObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  9. XMLHttpRequestObject.send('&id2=' + id2 + '&opis3=' + opis3);
  10.  
  11. XMLHttpRequestObject.onreadystatechange = function () {
  12. if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
  13. obj.innerHTML = XMLHttpRequestObject.responseText;
  14. }
  15. }
  16. }
  17. }
nospor
Jak nie ma jakiegos bbcode to sie uzywac bbcode ogolnego czyli CODE

Co do problemu:
var id2 = document.getElementById('id2').value;
Zawsze pobierasz wartosc z tego samego elementu, to nic dziwnego ze ci zawsze zapisuje ten sam elelement - w twoim wypadku pierwszy.
Element z danym ID moze byc tylko jeden, a ty zapewne w petli tworzysz całą mase elementow z takim samym id

problem z php nie ma zadnego zwiazku - przenosze
tomi0001
Cytat
Jak nie ma jakiegos bbcode to sie uzywac bbcode ogolnego czyli CODE

Co do problemu:
var id2 = document.getElementById('id2').value;
Zawsze pobierasz wartosc z tego samego elementu, to nic dziwnego ze ci zawsze zapisuje ten sam elelement - w twoim wypadku pierwszy.
Element z danym ID moze byc tylko jeden, a ty zapewne w petli tworzysz całą mase elementow z takim samym id

problem z php nie ma zadnego zwiazku - przenosze


To jaki masz pomyśł, żeby to zrobić z id to sobie poradziłem, ale już dochodzi kwesta opisu teraz dzieje się taka rzecz, że np. jak jest w pierwszym polu tekstowym jakaś wartość i jak w drugim polu tekstowym dodamy inną wartośc to i tak do tego rekordu zostania wpisana wartość z pola pierwszego ja to tak zrobiłem

  1. getData3('dodaj2.php?id2=$uzywki2[0]'

a na początku było tak
  1. getData3('dodaj2.php'

i te id było pobierane na początku z javascriptu teraz nie wiem tylko jak wstawić za pomocą zwykłego linku wartośc pola opis

Bo zaskakujące jest to, że jak np. kliknę przycisk pokaz to pole dododawnia to zawsze mnie przenosi na 1 rekord.
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.