Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [AJAX] Przesłanie danych do skryptu i z powrotem
Emkacf
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 5.09.2013

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


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Damonsson
post
Post #2





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


Pokaż kod, gdzie raz Ci się udało AJAXa trochę uruchomić.
Go to the top of the page
+Quote Post
Emkacf
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 5.09.2013

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


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
Go to the top of the page
+Quote Post
Damonsson
post
Post #4





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


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
Go to the top of the page
+Quote Post
Emkacf
post
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 5.09.2013

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


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

Ten post edytował Emkacf 5.09.2013, 17:20:58
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 06:09