2013-03-26 12 views
10

Chcę przekazać wartości do skryptu PHP, więc używam AJAX, aby je przekazać, aw tej samej funkcji używam innej AJAX do pobierania tych wartości.Używanie AJAX do przekazania zmiennej do PHP i odzyskanie tych używając AJAX ponownie

Problem polega na tym, że druga AJAX nie pobiera żadnej wartości z pliku PHP. Dlaczego to? Jak mogę zapisać zmienną przekazaną do skryptu PHP, aby druga AJAX mogła ją pobrać?

Mój kod wygląda następująco: Kod

AJAX:

$(document).ready(function() {  
    $("#raaagh").click(function(){  
     $.ajax({ 
      url: 'ajax.php', //This is the current doc 
      type: "POST", 
      data: ({name: 145}), 
      success: function(data){ 
       console.log(data); 
      } 
     }); 
     $.ajax({ 
      url:'ajax.php', 
      data:"", 
      dataType:'json', 
      success:function(data1){ 
       var y1=data1; 
       console.log(data1); 
      } 
     }); 
    }); 
}); 

kod PHP:

<?php 
$userAnswer = $_POST['name'];  
echo json_encode($userAnswer);  
?> 
+1

Nie ma potrzeby stosowania drugiego ajaxu, można uzyskać dane w samym pierwszym ajaxu. – Mahendra

+0

Pierwszą AJAX można użyć do zwrócenia danych. –

Odpowiedz

16

Zastosowanie dataType:"json" dla json danych

$.ajax({ 
    url: 'ajax.php', //This is the current doc 
    type: "POST", 
    dataType:'json', // add json datatype to get json 
    data: ({name: 145}), 
    success: function(data){ 
     console.log(data); 
    } 
}); 

Przeczytaj Docs http://api.jquery.com/jQuery.ajax/

Również w PHP

<?php 
    $userAnswer = $_POST['name']; 
    $sql="SELECT * FROM <tablename> where color='".$userAnswer."'" ; 
    $result=mysql_query($sql); 
    $row=mysql_fetch_array($result); 
    // for first row only and suppose table having data 
    echo json_encode($row); // pass array in json_encode 
?> 
+0

zobacz dane to wartość, którą wysłałem do php. Co jeśli pobierze inną wartość z php na podstawie zmiennej, którą wysłałem. Na przykład wysyłam wartość niebieski, aw php używam stanu mysql wybierz * z samochodów gdzie kolor = "niebieski"; jak dostanę wartość tego za pomocą tego samego ajax? –

+0

Sprawdź powyższy zmieniłem. –

+0

Więc mówisz, że pojedyncze wywołanie AJAX może nawet dać mi wartość json_encoded z bazy danych? ale czy dane w AJAX nie są wartością, którą przekazujemy skryptowi PHP? –

1

ma potrzeby korzystania z drugą funkcję AJAX, można je dostać z powrotem na sukces wewnątrz funkcji, innym problemem jest to, że nie wiem kiedy pierwsze wywołanie ajax zakończone, a następnie, nawet jeśli używasz SESJI, możesz nie dostać go w ramach drugiego wywołania AJAX.

WIĘC, polecam za pomocą jednego wywołania AJAX i uzyskać wartość z powodzeniem.

przykład: w pierwszym wywołaniu ajax

$.ajax({ 
     url: 'ajax.php', //This is the current doc 
     type: "POST", 
     data: ({name: 145}), 
     success: function(data){ 
      console.log(data); 
      alert(data); 
      //or if the data is JSON 
      var jdata = jQuery.parseJSON(data); 
     } 
    }); 
+1

, więc jak wywołać dane z pliku php? Ponieważ to, co planowałem zrobić, to przekazać tę zmienną, aby mogła być użyta w zapytaniu mysql do pobrania danych z bazy danych. Czy możesz mi pomóc, jak połączyć dane z powrotem z samym pierwszym ajaxem? Czy jest jakiś sposób, aby przekazana wartość była przechowywana w skrypcie php, aby mógł kontynuować kwerendę, jeśli utrzymuję limit czasu. –

+0

zobacz przykład, kiedy wyślesz parametr do swojego PHP, a następnie nad nim pracujesz, a na końcu, możesz wydrukować wyjście z powrotem do ajax ... –

+0

zobacz dane to wartość, którą wysłałem do php. Co jeśli pobierze inną wartość z php na podstawie zmiennej, którą wysłałem. Na przykład wysyłam wartość niebieski, aw php używam stanu mysql wybierz * z samochodów gdzie kolor = "niebieski"; jak dostanę wartość tego za pomocą tego samego ajax? –

1
$(document).ready(function() { 
    $("#raaagh").click(function() { 
     $.ajax({ 
      url: 'ajax.php', //This is the current doc 
      type: "POST", 
      data: ({name: 145}), 
      success: function(data) { 
       console.log(data); 
       $.ajax({ 
        url:'ajax.php', 
        data: data, 
        dataType:'json', 
        success:function(data1) { 
         var y1=data1; 
         console.log(data1); 
        } 
       }); 
      } 
     }); 
    }); 
}); 

Korzystanie tak, najpierw nawiązać połączenie ajax, aby uzyskać dane, wówczas funkcja php powróci U wynik, który u wil dostać w dane i przekazać że dane do nowej rozmowy ajax

1

masz do przekazania wartości z apostrofami

$(document).ready(function() {  
    $("#raaagh").click(function(){  
     $.ajax({ 
      url: 'ajax.php', //This is the current doc 
      type: "POST", 
      data: ({name: '145'}), //variables should be pass like this 
      success: function(data){ 
       console.log(data); 
          } 
     }); 
     $.ajax({ 
    url:'ajax.php', 
    data:"", 
    dataType:'json', 
    success:function(data1){ 
      var y1=data1; 
      console.log(data1); 
      } 
     }); 

    }); 
}); 

spróbuj, może to zadziała .......

1

W twoim pliku PhP pojawi się zmienna o nazwie $_REQUEST i zawiera tablicę zawierającą wszystkie dane wysyłane z Javascript do PhP przy użyciu AJAX.

Spróbuj tego: var_dump($_REQUEST); i sprawdź, czy otrzymujesz wartości.