Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX]ajax nie dziala
Forum PHP.pl > Forum > Przedszkole
benzulli
Kod
var menuId = "asd";
$(document).ready(function() {
        $.ajax({
          url: "kanwa.php",
          type: "POST",
          data: {id : menuId},
          dataType: "html"
        });
        });
        alert(<?php echo $_POST['id']; ?>);


Post zwraca pustą zmienną
Comandeer
A czemu ma cokolwiek zwracać, skoro kod PHP jest wykonywany przed wysłaniem do przeglądarki, więc dostajesz po prostu pusty alert?

Poza tym: Ajaks jest asynchroniczny
casperii
Czemu nie zrobisz czegoś na ten styl:


  1. var menuId = "asd";
  2. $.getJSON('ajax.php', {input: ""+menuId+""}, function(data) {
  3. $('input[name="id"]').val(data.id);
  4. });



  1. <input type="text" name="id" value="">



Ajax.php:

  1. $a->id = $result->id;
  2. echo json_encode($a);
benzulli
@up {"id":null} - zwraca
Kod
<script type="text/javascript">
    
    
        function pokazCookie(nazwa) {
            if (document.cookie!="") {
                var cookies=document.cookie.split("; ");  
                for (i=0; i<cookies.length; i++) {
                    var nazwaCookie=cookies[i].split("=")[0];
                    var wartoscCookie=cookies[i].split("=")[1];
                    if (nazwaCookie===nazwa) {
                        return unescape(wartoscCookie)
                    }
                }
            }
        }
        
        
        
        function ustawCookie(nazwa, wartosc, dni) {
            if (dni) {
                var data = new Date();
                data.setTime(data.getTime()+(dni*24*60*60*1000));          
                var expires = ";expires="+data.toGMTString();
            } else {
                var expires = "";
            }
            document.cookie = nazwa+"=" + wartosc + expires + "; path=/";
        }
        
        
        
        
      document.addEventListener("DOMContentLoaded", init, false);
      function init()
      {
        var canvas = document.getElementById("canvas");
        canvas.addEventListener("mousedown", getPosition, false);
      }
      
      



      var k = pokazCookie('repeat');
      
      
      function getPosition(event)
      {
        k++;
        var x = new Number();
        var y = new Number();
        var canvas = document.getElementById("canvas");

        if (event.x != undefined && event.y != undefined)
        {
          x = event.x;
          y = event.y;
        }
        else
        {
          x = event.clientX + document.body.scrollLeft +
              document.documentElement.scrollLeft;
          y = event.clientY + document.body.scrollTop +
              document.documentElement.scrollTop;
        }

        x -= canvas.offsetLeft;
        y -= canvas.offsetTop;

        $.ajax({
          url: "kanwa.php",
          type: "POST",
          data: {iks : x},
          dataType: "html"
        });        
        
        ustawCookie('x', x);
        ustawCookie('y', y);
        ustawCookie('k', k);
        <?php
        $iks = array(1,2,3,4,5,6);
        $igrek = array(1,2,3,4,5,6);
        $g=0;
        $shoot = false;
        for($i = 0; $i < count($iks); $i++)
        {
            if($_COOKIE['x'] == $iks[$i] && $_COOKIE['y'] == $igrek[$i] && $_COOKIE['k'] < 20)
            {
                echo 'alert("YOU HAVE WON!, coordinates: x = "+x+", y = "+y);';
                $shoot=true;
                break;
            }
            else
            {
                $g++;
            }
        }
        if($g==count($iks) && $shoot == false)
            echo 'alert("You hit pixel with coordinates: x = "+x+", y = "+y);';
        ?>
        
        ustawCookie('repeat', k);
        if(pokazCookie('repeat')>=20)
        {
            document.getElementById("bg").style.display="block";
            document.getElementById("form").style.display="block";
             $("#submit_btn").click(function()
             {
                location.reload();
                 var cod = $('input[name=cod]').val();
                 var code = $('#captchacode').val();    
                 //alert(cod);
                // alert(code);
                  if(cod==code || cod.toUpperCase() == code.toUpperCase() || cod.toLowerCase() == code.toLowerCase())
                    {
                        document.getElementById("bg").style.display="none";
                        document.getElementById("form").style.display="none";
                        k = 0;
                        ustawCookie('repeat', k);
                    }            
            });        
        }
      }
    </script>
com
yy? gdzie bo ja nie widzę żebyś wgl używał tego kodu który podał casperii smile.gif

wracając do tamtego przykłady
  1. var menuId = "asd"; // jakaś zmienna która wysyłasz do php
  2. $.getJSON('ajax.php',
  3. {input: ""+menuId+""} // tutaj zawartosc która przeszyłasz
  4. , function(data) { // a tutaj jest odpowiedź czyli data.id to odpowiedź a nie {input: ""+menuId+""}
  5. $('input[name="id"]').val(data.id);
  6. });

benzulli
Robiłem to w osobnym pliku, po prostu, żeby sprawdzić:
plik1.php
Kod
    <!DOCTYPE html>
    <html>
      <head>
          <meta charset="utf-8" />
          <script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
          <script>
            var menuId = "asd"; // jakaś zmienna która wysyłasz do php
            $.getJSON('ajax.php',
             {input: ""+menuId+""} // tutaj zawartosc która przeszyłasz
            , function(data) { // a tutaj jest odpowiedź czyli data.id to odpowiedź a nie  {input: ""+menuId+""}
                    $('input[name="id"]').val(data.id);
            });
          </script>

      </head>
      <body>
<input type="text" name="id" value="asdasdas">
      </body>
    </html>


ajax.php
Kod
<?php
$a->id = $result->id;
echo json_encode($a);
?>


co wyszło z ajax.php:
Kod
{"id":null}
casperii
No przecież:

  1. $a->id = $result->id;


zwróci ci null. jako $result->id musisz podłożyć co ty tam sobie chcesz.
com
Proszę działający przykład
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8" />
  5. <script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
  6. $(function() {
  7. var menuId = "asd";
  8. $.getJSON('ajax.php', {input: ""+menuId+""}, function(data) {
  9.  
  10. $('input[name="id"]').val(data.id);
  11. });
  12. });
  13. </script>
  14. </head>
  15. <body>
  16. <input type="text" name="id" value="asdasdas">
  17. <input type="submit">
  18. </body>
  19. </html>


  1. <?php
  2. $a = (object) [];
  3. $a->id = $_GET['input'];
  4. echo json_encode($a);
  5. ?>




problem rozwiązany smile.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.