Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][AJAX]Przesyłanie danych POSTem
Forum PHP.pl > Forum > Przedszkole
Mlodycompany
Witam. Robie na swojej stronce edytowanie danych usera. Chcę zrobić tak aby je zmieniało bez odświeżania strony czyli w AJAXie. To wiem jak zrobić żęby wykonać zapytanie bez odświeżania. Nie wiem tylko jak wysłać dane z formularza do tego skryptu. Czy ktoś może mi pomóc? Załączam kod:
  1. <?
  2. include('config.php');
  3. $query = query('users', "`login` = '".$_SESSION['login']."'");
  4. $row = mfa($query);
  5. show('
  6. <html>
  7. <head>
  8. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  9. <script type="text/javascript">
  10. function getXMLHttpRequestObject(){
  11. try{
  12. return new XMLHttpRequest();
  13. }
  14. catch(e){
  15. try{
  16. return new ActiveXObject("Microsoft.XMLHTTP");
  17. }
  18. catch(e){
  19. return false;
  20. }  
  21. }
  22. }
  23. function zapisz(){
  24. var XMLHttpRequestObject = getXMLHttpRequestObject();
  25. if(XMLHttpRequestObject){
  26. var th = document.getElementById("edit");
  27. var url = "'.$URL.'/edit_data.php?action=edit";
  28.  
  29. XMLHttpRequestObject.open("GET", url);
  30. XMLHttpRequestObject.onreadystatechange = function(){
  31. if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200){
  32. th.innerHTML = XMLHttpRequestObject.responseText;
  33. delete XMLHttpRequestObject;
  34. XMLHttpRequestObject = false
  35. }
  36. }
  37. XMLHttpRequestObject.send(null)
  38. }
  39. }
  40.  
  41. </script>
  42. </head>
  43.  
  44.  
  45. <form action="" method="post">
  46. <table class="user_panel">
  47. <tr>
  48. <th class="header" colspan="2">'.EDIT_DATA.'</th>
  49. </tr>
  50. <tr>
  51. <th>'.LOGIN.':</th>
  52. <th><input type="text" value="'.$row[1].'" disabled class="form_edit"></th>
  53. </tr>
  54. <tr>
  55. <th>'.MAIL.':</th>
  56. <th><input type="text" value="'.$row[3].'" name="mail" class="form_edit"></th>
  57. </tr>
  58. <tr>
  59. <th>'.NAME.':</th>
  60. <th><input type="text" value="'.$row['imiona'].'" name="name" class="form_edit"></th>
  61. </tr>
  62. <tr>
  63. <th>'.SURNAME.':</th>
  64. <th><input type="text" value="'.$row['nazwisko'].'" name="surname" class="form_edit"></th>
  65. </tr>
  66. <tr>
  67. <th>'.ADDRESS.':</th>
  68. <th><input type="text" value="'.$row['adres'].'" name="address" class="form_edit"></th>
  69. </tr>
  70. <tr>
  71. <th>'.COUNTRY.':</th>
  72. <th><input type="text" value="'.$row['kraj'].'" name="address" class="form_edit"></th>
  73. </tr>
  74. <tr>
  75. <th>'.CITY.':</th>
  76. <th><input type="text" value="'.$row['miasto'].'" name="address" class="form_edit"></th>
  77. </tr>
  78. <tr>
  79. <th>'.POSTAL.':</th>
  80. <th><input type="text" value="'.$row['kodpocztowy'].'" name="address" class="form_edit"></th>
  81. </tr>
  82. <tr>
  83. <th>'.DATE_BIRTH.':</th>
  84. <th><select name="year">'); 
  85. $birth = explode('.', $row['dataurodzenia']);
  86. $rok = date("Y");
  87. $rok2 = $rok - 70;
  88. for($i = $rok2; $i < $rok; $i++){
  89. if($birth[0] == $i){
  90. show('<option value="'.$i.'" selected>'.$i.'</option>');
  91. }
  92. else{
  93.  show('<option value="'.$i.'">'.$i.'</option>');
  94. }
  95.  
  96. }
  97. $month = array('Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj', 'Czerwiec', 'Lipiec', 'Sierpień', 'Wrzesień', 'Październik', 'Listopad', 'Grudzień');
  98. show('</select><select name="month">'); 
  99. for($i = 0; $i < 12; $i++){
  100. $ii = $i+1;
  101. if($birth[1] == $ii){
  102. show('<option value="'.$ii.'" selected>'.$month[$i].'</option>');
  103. }
  104. else{
  105.  show('<option value="'.$ii.'">'.$month[$i].'</option>');
  106. }
  107.  
  108. }
  109. show('</select><select name="day">'); 
  110. for($i = 0; $i < 31; $i++){
  111. $ii = $i+1;
  112. if($birth[2] == $ii){
  113. show('<option value="'.$ii.'" selected>'.$ii.'</option>');
  114. }
  115. else{
  116.  show('<option value="'.$ii.'">'.$ii.'</option>');
  117. }
  118.  
  119. }
  120. show('</select></th>
  121. </tr>
  122. <tr>
  123. <th colspan="2"><input type="button" onclick="zapisz();" value="Zapisz"></th>
  124. </tr>
  125. <tr>
  126. <th id="edit"></th>
  127. </tr>
  128. </table>
  129. </form>
  130. </html>');
  131. if($_GET['action'] == 'edit'){
  132. echo('edit');
  133. }
  134. ?>
dr_bonzo
Wez uzyj takiego jQuery + jQuery form plugin, z 10 linijek kodu i wszystko zrobione, na stronce masz gotowe przyklady. I pisze sie 10x prosciej
Mlodycompany
no dobrze a mozesz podac jakis przyklad bo ajaxa troche czaje a jquery wcale

a wpadłem tez na pomysl jakby przekazac dane JSem do GETa i zrobic zapytanie z geta
dr_bonzo
Uzywanie google boli?
http://docs.jquery.com/Ajax/jQuery.post#urldatacallbacktype
Mlodycompany
no nie boli ale jak ktos nie kmini wcale co to jest jquery tak jak ja to nic sam nie zdziała więc prosze o dokladne instrukcje jak to zrobic
nospor
Cytat
no nie boli ale jak ktos nie kmini wcale co to jest jquery
To se wejdz na strone domowa jquery i poczytaj co to jest jquery
http://jquery.com/
i nie zawracaj ludziom 4 liter takimi pytaniami

Cytat
dokladne instrukcje jak to zrobic
Dostales linka wczesniej do konkrentego przykladu
mike
Cytat(Mlodycompany @ 10.07.2008, 13:16:38 ) *
no nie boli ale jak ktos nie kmini wcale co to jest jquery tak jak ja to nic sam nie zdziała więc prosze o dokladne instrukcje jak to zrobic
Ci którzy nie kminią dzielą się na dwie kategorie.
1. Ci, którzy potrafią używać rozumu. Oni szukają informacji, tym bardziej że dostali linka.
2. Ci, którzy nie potrafią (bądź nie chcą) i nic nie robią.

Ty wpadłeś do drugiego worka. Kolejny raz wykazujesz się "niechciejstwem" i znów prezentujesz niesamodzielność. To forum nie służy do prowadzenia za rączkę tych, którym się nie chce.
Pamiętaj o tym inaczej będę zamykał takie wątki jak ten.
Mlodycompany
no dobra. mniejsza. a jakby wziasc dane JS do GETa czyli
Kod

var url = "'.$URL.'/strona.php?get=";
url += document.form.mail.value;

to by działało?
nospor
by dzialalo, pod warunkiem ze dobrze je dodasz.
Mlodycompany
zrobiłem to tak:
  1. <?
  2. include('config.php');
  3. $query = query('users', "`login` = '".$_SESSION['login']."'");
  4. $row = mfa($query);
  5. show('
  6. <html>
  7. <head>
  8. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  9. <script type="text/javascript">
  10. function getXMLHttpRequestObject(){
  11. try{
  12. return new XMLHttpRequest();
  13. }
  14. catch(e){
  15. try{
  16. return new ActiveXObject("Microsoft.XMLHTTP");
  17. }
  18. catch(e){
  19. return false;
  20. }  
  21. }
  22. }
  23. function zapisz(){
  24. var XMLHttpRequestObject = getXMLHttpRequestObject();
  25. if(XMLHttpRequestObject){
  26. var th = document.getElementById("idedit");
  27. var mail = document.getElementById("mail").value;
  28. mail = escape(mail);
  29. var url = "'.$URL.'/edit_data_true.php?action=" + mail;
  30.  
  31. XMLHttpRequestObject.open("GET", url);
  32. XMLHttpRequestObject.onreadystatechange = function(){
  33. if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200){
  34. th.innerHTML = XMLHttpRequestObject.responseText;
  35. delete XMLHttpRequestObject;
  36. XMLHttpRequestObject = false
  37. }
  38. }
  39. XMLHttpRequestObject.send(null)
  40. }
  41. }
  42.  
  43. </script>
  44. </head>
  45.  
  46.  
  47. <form action="" method="post" name="form">
  48. <table class="user_panel">
  49. <tr>
  50. <th class="header" colspan="2">'.EDIT_DATA.'</th>
  51. </tr>
  52. <tr>
  53. <th>'.LOGIN.':</th>
  54. <th><input type="text" value="'.$row[1].'" disabled class="form_edit"></th>
  55. </tr>
  56. <tr>
  57. <th>'.MAIL.':</th>
  58. <th><input type="text" value="'.$row[3].'" name="mail" class="form_edit" id="mail"></th>
  59. </tr>
  60. <tr>
  61. <th>'.NAME.':</th>
  62. <th><input type="text" value="'.$row['imiona'].'" name="name" class="form_edit"></th>
  63. </tr>
  64. <tr>
  65. <th>'.SURNAME.':</th>
  66. <th><input type="text" value="'.$row['nazwisko'].'" name="surname" class="form_edit"></th>
  67. </tr>
  68. <tr>
  69. <th>'.ADDRESS.':</th>
  70. <th><input type="text" value="'.$row['adres'].'" name="address" class="form_edit"></th>
  71. </tr>
  72. <tr>
  73. <th>'.COUNTRY.':</th>
  74. <th><input type="text" value="'.$row['kraj'].'" name="address" class="form_edit"></th>
  75. </tr>
  76. <tr>
  77. <th>'.CITY.':</th>
  78. <th><input type="text" value="'.$row['miasto'].'" name="address" class="form_edit"></th>
  79. </tr>
  80. <tr>
  81. <th>'.POSTAL.':</th>
  82. <th><input type="text" value="'.$row['kodpocztowy'].'" name="address" class="form_edit"></th>
  83. </tr>
  84. <tr>
  85. <th>'.DATE_BIRTH.':</th>
  86. <th><select name="year">'); 
  87. $birth = explode('.', $row['dataurodzenia']);
  88. $rok = date("Y");
  89. $rok2 = $rok - 70;
  90. for($i = $rok2; $i < $rok; $i++){
  91. if($birth[0] == $i){
  92. show('<option value="'.$i.'" selected>'.$i.'</option>');
  93. }
  94. else{
  95.  show('<option value="'.$i.'">'.$i.'</option>');
  96. }
  97.  
  98. }
  99. $month = array('Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj', 'Czerwiec', 'Lipiec', 'Sierpień', 'Wrzesień', 'Październik', 'Listopad', 'Grudzień');
  100. show('</select><select name="month">'); 
  101. for($i = 0; $i < 12; $i++){
  102. $ii = $i+1;
  103. if($birth[1] == $ii){
  104. show('<option value="'.$ii.'" selected>'.$month[$i].'</option>');
  105. }
  106. else{
  107.  show('<option value="'.$ii.'">'.$month[$i].'</option>');
  108. }
  109.  
  110. }
  111. show('</select><select name="day">'); 
  112. for($i = 0; $i < 31; $i++){
  113. $ii = $i+1;
  114. if($birth[2] == $ii){
  115. show('<option value="'.$ii.'" selected>'.$ii.'</option>');
  116. }
  117. else{
  118.  show('<option value="'.$ii.'">'.$ii.'</option>');
  119. }
  120.  
  121. }
  122. show('</select></th>
  123. </tr>
  124. <tr>
  125. <th colspan="2"><input type="button" onclick="zapisz();" value="Zapisz"></th>
  126. </tr>
  127. <tr>
  128. <th id="idedit"></th>
  129. </tr>
  130. </table>
  131.  
  132. </form>
  133. </html>');
  134. if($_GET['action'] == 'edit'){
  135. echo('dupa');
  136. }
  137.  
  138. ?>

i w pliku edit_data_true.php mam
  1. <?php
  2. echo $_GET['action'], 'ok';
  3. ?>

i jak klikam 'zapisz to nic nie wyswietla na stronie'

blad nie lezy w przeslaniu danych tylko w wykonaniu skryptu ktory jest w edit_data_true.php poniewaz tam jest echo i jak klikne na zapisz to nic sie nie zmienia na stronie
mls
Pocieszne. Zrobić taki błąd w jednej prostej linijce i pisać wielką wiadomość na forum, że "nie działa"... Ech...
A najlepsze jest przecież to, że PHP przeważnie informuje co i gdzie powoduje błąd...
mike
~mls pokaż mi błąd w tej linijce:
  1. <?php
  2. echo $_GET['action'], 'ok';
  3. ?>

Zanim zaczniesz szukać to podpowiem: tu nie ma błędu.

~Mlodycompany męczysz się już tyle z każdą pierdołą i nadal nie wiesz że jak nic nie widać to dajesz na początku skryptu:
  1. <?php
  2.  
  3. ini_set('display_errors', 1);
  4.  
  5. ?>


Zapomnij o tym raz jeszcze i dostaniesz ostrzeżenie.
Mlodycompany
OłKej Majk biggrin.gif
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.