2011-11-25 13 views
9

Tengo problemas para recuperar los datos de mi archivo PHP. Supongo que realmente no entiendo el parámetro de datos de esta función de jquery, así que me salí algunos tutoriales.Ajax PHP Jquery - echo atrás datos

Jquery

$.ajax(
    { 
     url: 'test.php', 
     dataType: 'text', 
     data: {test: '1'}, 
     success: function(data) 
     { 
      window.alert(data); 
     } 
    }) 

Ahora, desde mi entendimiento del test: declara la variable utilizada en php y 1 es el valor de esa variable. Pero no estoy del todo seguro ...

Aquí es mi PHP

$item1 = $_POST['test']; 

    echo $item1; 

ahora es sólo supone para alertar a ese valor, así que sé que es, al menos, volviendo algo, pero en la alerta es sólo en blanco para que me estoy perdiendo el valor en alguna parte, pero ¿dónde?

Respuesta

14

uso $_REQUEST que se encargará tanto de la GET y POST

$item1 = $_REQUEST['test']; 

por la petición ajax predeterminado es GET tipo, ya sea especificar expilicitly la type como

$.ajax(
    { 
     url: 'test.php', 
     type:'POST' 
     dataType: 'text', 
     data: {test: '1'}, 
     success: function(data) 
     { 
      window.alert(data); 
     } 
    }) 

o utilizar $_GET como

item1 = $_GET['test']; 

    echo $item1; 
método POST
+0

lea los documentos http://api.jquery.com/jQuery.ajax/ – robert

+0

awwww hombre mirándome a la cara todo el tiempo. Es bueno saber que es GET por defecto, sin embargo. ¡Gracias! –

+0

eres bienvenido ':)' – Rafay

0

complemento:

$.ajax(
    { 
     url: 'test.php', 
     dataType: 'text', 
     type: 'post', 
     data: {test: '1'}, 
     success: function(data) 
     { 
      window.alert(data); 
     } 
    }) 
0

se olvidó de poner el método POST/GET mediante el cual, se envían los datos a su archivo php.

$.ajax(
    {   
     type:'POST',   
     url: 'test.php', 
     dataType: 'text', 
     data: {test: '1'}, 
     success: function(data) 
     { 
      window.alert(data); 
     } 
    }) 
0
just add "type" POST or GET  

//example 
$.ajax(
{ 
    url: 'test.php', 
    type: 'POST', 
    data: {test: '1'}, 
    success: function(data) 
    { 
     window.alert(data); 
    } 
}) 
5

La forma correcta:

<?php 
$change = array('key1' => 'blabla', 'key2' => '12432rr424234'); 
echo json_encode($change); 
?> 

A continuación, el script de jQuery:

<script> 
$.get("location.php", function(data){ 
    var mydata= $.parseJSON(data); 
    var art1 = mydata.key1; // <----------- access the element 
}); 
</script> 
0

Si usted está tratando de obtener información del archivo PHP, I don' Creo que el campo de datos es obligatorio. Esto es lo que tengo.

   $.ajax(
       { 
        url: 'response.php', 
        type: 'get', 
        dataType:'text', 
        success: function(data){ 
         window.alert(data); 
        } 
       } 

y por lo que el php va ..

<?php 
    echo "1"; 
    echo "2"; 
    echo "3"; 
    echo "4"; 
    echo "5"; 
    echo "6"; 
    echo "7"; 
    echo "8"; 
?> 

Alert box on execution

1

Este es un trabajo para mí

código ajax

<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script> 
     <title>Test Page</title> 
     <script> 
      $.ajax(
        { 
         url: 'test.php', 
         type: 'POST', 
         dataType: 'text', 
         data: {latitude: '7.15588546', longitude: '81.5659984458'}, 
         success: function (response) 
         { 
          alert(response); 
         } 
        }); 
     </script> 
    </head> 
    <body> 
    </body> 
</html> 

código php (test.php)

<?php 

$lat = $_REQUEST['latitude']; 
$lon = $_REQUEST['longitude']; 

echo 'latitude- '.$lat . ', longitude- ' . $lon; 
?> 
0

estado luchando en esto durante un tiempo, mi problema no estaba en el js pero en script PHP: el informe de errores se establece en E_ALL - que al parecer lo bloquea de devolver datos a la llamada AJAX. Supongo que imprime avisos antes del eco final y lo bloquea todo. Lo extraño es que no me imprimió ningún aviso en los registros que configuré para llegar al fondo de esto.

Se ha cambiado a E_ERROR y ahora funciona como un amuleto.