Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX] Przesłanie danych do skryptu i z powrotem
Forum PHP.pl > Forum > Przedszkole
Emkacf
Hej, mam niewielką stronkę sprawdzającą kod w bazie. Jeżeli kod istnieje to wyświetla do jakiej nagrody został przypisany. Wszystko działa, ale chciałabym wyświetlać to bez przeładowania strony, a coś mi nie idzie, więc byłabym wdzięczna za jakieś porady jak zrobić to w ajaxie.

to jest mój formularz:
  1. <form id="check" action="check.php" name="check" method="POST">
  2. <input name="code" type="text" value=""/>
  3. <button id="check" type="submit" name="check" value="" class="check">Sprawdź kod<img style="position:relative;top:3px;padding-left:7px;" src="./assets/img/loupe.png" alt='lupa'/></button>
  4. </form>


a tu kawałek php odpowiedzialny za sprawdzanie:
  1. $wynik = mysql_query("SELECT campaigns_codes.uid, rewards.reward, rewards.place_id FROM campaigns_codes, rewards WHERE campaigns_codes.code = '$code' AND campaigns_codes.uid = rewards.joker_id ") or die('Błąd zapytania');
  2. if(mysql_num_rows($wynik) > 0) {
  3. while($r = mysql_fetch_assoc($wynik)) {
  4. $placeid = $r['place_id'];
  5. $reward = $r['reward'];
  6. $uid = $r['uid'];
  7. ?>
  8. <h1>GRATULUJEMY!</h1>
  9. <p> Twoja nagroda to:</p> <h1> <?php echo $reward; ?> </h1>
  10. <?php
  11. $query = "INSERT INTO `logs`(`uid`, `time`, `code`, `action`) VALUES ('$uid', '$date', '$code', 'checked')";
  12. mysql_query($query) or die('Błąd zapytania');
  13. }
  14. }
  15. $wynik2 = mysql_query("SELECT places.address, places.telephone FROM places WHERE id = '$placeid' ") or die('Błąd zapytania');
  16. if(mysql_num_rows($wynik2) > 0) {
  17. while($r2 = mysql_fetch_assoc($wynik2)) {
  18. ?>
  19. <p>Nagroda jest do odbioru w punkcie:</p>
  20. <h1><?php echo $r2['address']; ?></h1>
  21. <h1> tel: <?php echo $r2['telephone']; ?> </h1>
  22. <?php
  23. }
  24. }


Raz udało mi się trochę ajaxa uruchomić, przesyłało kod do skryptu (a przynajmniej powinno, bo alert wyskoczył), ale w logach w bazie danych nie było widać wykonania skryptu
Damonsson
Pokaż kod, gdzie raz Ci się udało AJAXa trochę uruchomić.
Emkacf
miałam coś takiego

  1. $(document).ready(function() {
  2.  
  3. $('#check').submit(function() {
  4. alert($(this).serialize()); // check to show that all form data is being submitted
  5. $.post("check.php",$(this).serialize(),function(data){
  6. alert('dupa'); //check to show that the calculation was successful
  7. });
  8. return false; // return false to stop the page submitting. You could have the form action set to the same PHP page so if people dont have JS on they can still use the form
  9. });
  10. });


gdzieś na stackoverflow to znalazlam
Damonsson
No i pięknie.

Na początku kodu odpowiedzialnego za sprawdzanie:
  1. $code = $_POST['code'];


Jeśli dostaniesz "błąd zapytania", to zastosuj się do: Temat: Jak poprawnie zadac pytanie
Emkacf
Mój błąd, bo nie dałam całego kodu, ponieważ w pliku znajduje się więcej oprócz sprawdzania. Na początku mam przypisywanie kodu do $code, a mimo tego nie działał mi ajax jak trzeba.
Pełen kod php (działający trzeba dodać rzecz jasna) wygląda tak:
  1. require('config.php');
  2. connection();
  3. $code = $_POST['code'];
  4. $date = date('Y-m-d h:i:s');
  5. $uzyty = mysql_query("SELECT status FROM campaigns_codes WHERE code = '$code' ") or die('Błąd zapytania');
  6. $r = mysql_fetch_assoc($uzyty);
  7. if(strlen($code) != 12){
  8. echo "<h1>Twój kod jest nieprawidłowy</h1>";
  9. }
  10. if($r['status'] == '0'){
  11.  
  12. if(isset($_POST['check'])){
  13. $wynik = mysql_query("SELECT campaigns_codes.uid, rewards.reward, rewards.place_id FROM campaigns_codes, rewards WHERE campaigns_codes.code = '$code' AND campaigns_codes.uid = rewards.joker_id ") or die('Błąd zapytania');
  14. if(mysql_num_rows($wynik) > 0) {
  15. while($r = mysql_fetch_assoc($wynik)) {
  16. $placeid = $r['place_id'];
  17. $reward = $r['reward'];
  18. $uid = $r['uid'];
  19. ?>
  20. <h1>GRATULUJEMY!</h1>
  21. <p> Twoja nagroda to:</p> <h1> <?php echo $reward; ?> </h1>
  22. <?php
  23. $query = "INSERT INTO `logs`(`uid`, `time`, `code`, `action`) VALUES ('$uid', '$date', '$code', 'checked')";
  24. mysql_query($query) or die('Błąd zapytania');
  25. }
  26. }
  27. $wynik2 = mysql_query("SELECT places.address, places.telephone FROM places WHERE id = '$placeid' ") or die('Błąd zapytania');
  28. if(mysql_num_rows($wynik2) > 0) {
  29. while($r2 = mysql_fetch_assoc($wynik2)) {
  30. ?>
  31. <p>Nagroda jest do odbioru w punkcie:</p>
  32. <h1><?php echo $r2['address']; ?></h1>
  33. <h1> tel: <?php echo $r2['telephone']; ?> </h1>
  34. <?php
  35. }
  36. }
  37. }
  38. elseif(isset($_POST['given'])){
  39. $wynik = mysql_query("SELECT campaigns_codes.uid, rewards.reward, rewards.place_id FROM campaigns_codes, rewards WHERE campaigns_codes.code = '$code' AND campaigns_codes.uid = rewards.joker_id ") or die('Błąd zapytania');
  40. if(mysql_num_rows($wynik) > 0) {
  41. while($r = mysql_fetch_assoc($wynik)) {
  42. $placeid = $r['place_id'];
  43. $uid = $r['uid'];
  44. ?>
  45. <p>Nagrodę <?php echo $r['reward'] ?> wydano </p>
  46. <?php
  47.  
  48. $query = "INSERT INTO `logs`(`uid`, `time`, `code`, `action`) VALUES ('$uid', '$date', '$code', 'given')";
  49. mysql_query($query) or die('Błąd zapytania');
  50. mysql_query("UPDATE campaigns_codes SET status = '1' WHERE code = '$code' ") or die('Błąd zapytania');
  51. }
  52. }
  53. $wynik2 = mysql_query("SELECT places.address, places.telephone FROM places WHERE id = '$placeid' ") or die('Błąd zapytania');
  54. if(mysql_num_rows($wynik2) > 0) {
  55. while($r2 = mysql_fetch_assoc($wynik2)) {
  56. ?>
  57. <p>w punkcie: <?php echo $r2['address']; ?></p>
  58. <?php
  59. }
  60. }
  61. }
  62. elseif(isset($_POST['return'])){
  63. $wynik = mysql_query("SELECT campaigns_codes.uid, rewards.reward, rewards.place_id FROM campaigns_codes, rewards WHERE campaigns_codes.code = '$code' AND campaigns_codes.uid = rewards.joker_id ") or die('Błąd zapytania');
  64. if(mysql_num_rows($wynik) > 0) {
  65. while($r = mysql_fetch_assoc($wynik)) {
  66. $placeid = $r['place_id'];
  67. $uid = $r['uid'];
  68. ?>
  69. <p>Nagrodę <?php echo $r['reward'] ?> zwrócono </p>
  70. <?php
  71.  
  72. $query = "INSERT INTO `logs`(`uid`, `time`, `code`, `action`) VALUES ('$uid', '$date', '$code', 'return')";
  73. mysql_query($query) or die('Błąd zapytania');
  74. }
  75. }
  76. $wynik2 = mysql_query("SELECT places.address, places.telephone FROM places WHERE id = '$placeid' ") or die('Błąd zapytania');
  77. if(mysql_num_rows($wynik2) > 0) {
  78. while($r2 = mysql_fetch_assoc($wynik2)) {
  79. ?>
  80. <p>do punktu: <?php echo $r2['address']; ?></p>
  81. <?php
  82. }
  83. }
  84. }
  85. }
  86. else{
  87. echo "<p>Kod został zużyty</p>";
  88. }


Ok,
Działa, ale jeżeli kod jest niezużyty to mi niczego nie wyświetla
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.