Foros del Web » Programando para Internet » PHP »

Cual es la forma correcta de recibir un dato por ajax en PHP ?

Estas en el tema de Cual es la forma correcta de recibir un dato por ajax en PHP ? en el foro de PHP en Foros del Web. Hola gente tengo un archivo llamado test.js que tiene lo siguiente: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original $. ajax ( {       ...
  #1 (permalink)  
Antiguo 06/12/2013, 15:11
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 6 meses
Puntos: 3
Pregunta Cual es la forma correcta de recibir un dato por ajax en PHP ?

Hola gente tengo un archivo llamado test.js que tiene lo siguiente:
Código Javascript:
Ver original
  1. $.ajax({
  2.              url: "livescore.php",
  3.              type: "POST",
  4.              data: JSON.stringify({ paramLeague:"NCAAB" }),
  5.              succes: function(data) {
  6.                 alert(data);
  7.             }
  8.  });
Y tengo a otro archivo php llamado livescore.php, en este archivo recibo la variable ajax que supuesta mente debo de recibir pero pongo esto y no me funka:
Código PHP:
echo $_POST["paramLeague"]; 
Alguna idea de como hacerlo o recomendacion de cual es la forma adecuada de hacerlo ??
  #2 (permalink)  
Antiguo 06/12/2013, 15:19
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 6 meses
Puntos: 397
Respuesta: Cual es la forma correcta de recibir un dato por ajax en PHP ?

Para consultas ajax lo mejo es usar JSON, si no sabes que es eso mira esto

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #3 (permalink)  
Antiguo 06/12/2013, 15:20
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 6 meses
Puntos: 578
Respuesta: Cual es la forma correcta de recibir un dato por ajax en PHP ?

Usa el objeto plano, sin stringify.

fugaz
  #4 (permalink)  
Antiguo 06/12/2013, 15:49
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 6 meses
Puntos: 3
Exclamación Respuesta: Cual es la forma correcta de recibir un dato por ajax en PHP ?

Gracias por sus respuestas, modifique mis archivos y ahora quedaron asi:
Código Javascript:
Ver original
  1. var parametrito = "{ paramLeague: 'NCAAB' }";
  2.         $.ajax({
  3.             type: "POST",
  4.             url: "livescore.php",
  5.             dataType: "json",
  6.             data: { json: parametrito }
  7.         });
Y mi php quedo asi:
Código PHP:
$json $_POST['paramLeague']; 
    
$paramLeague json_decode($json); 
    echo 
'VALOR: '.$paramLeague
Pero algo pasa ya que no estoy recibiendo nada, alguna ayuda??
  #5 (permalink)  
Antiguo 06/12/2013, 15:56
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 6 meses
Puntos: 397
Respuesta: Cual es la forma correcta de recibir un dato por ajax en PHP ?

Se nota que no te gusta investigar siempre crees que puedes conseguir que te den código hecho? así no son las cosas. Primero ten la delicadeza de leer y no hagas perder el tiempo a quienes tienen la delicadeza de responderte. Te dije no sabes que es JSON? y te deje un link. 5 link de búsqueda. Allí explican muy bien como trabajar con JSON tanto desde PHP como jQuery. En serio, no sigas haciendo este tipo de cosas que tendrán un resultado negativo.

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #6 (permalink)  
Antiguo 06/12/2013, 16:52
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 6 meses
Puntos: 3
Pregunta Respuesta: Cual es la forma correcta de recibir un dato por ajax en PHP ?

Amigo tienes razon no lei la primera vez, pero ya con este enlace que me diste lei la explicación del json y puse lo mismo del usuario que subio el ejemplo pero adoptado a mi necesidad, mira:

JS:
Código Javascript:
Ver original
  1. var array = new Object(); <!-- Construimos un objeto con la información a enviar -->
  2.         array['tag'] = "NCAAB";
  3.  
  4.     $.ajax({ <!-- Comenzamos la función con ajax -->
  5.         type: "POST", <!-- Enviamos los datos por POST -->
  6.         data: array, <!-- Metemos los datos del array para enviarlos -->
  7.         url: 'livescore.php', <!-- Le ponemos la ruta del PHP al que le enviamos los datos -->
  8.     });
PHP:
Código PHP:
if (isset ($_POST['tag']) && $_POST['tag'] != '') { //Comprobamos que haya algún tag por parte del cliente
        
echo 'tag = '.$tag $_POST['tag'];
        
error_log('tag: '.$tag);
 } 
Lo extraño es que al dar el echo no me sale nada, pero al dar el error_log si me sale la variable que se supone recibe por post. El codigo esta tal y como esta el del ejemplo que me diste. Sabes por que se debe eso??
  #7 (permalink)  
Antiguo 06/12/2013, 16:58
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 6 meses
Puntos: 397
Respuesta: Cual es la forma correcta de recibir un dato por ajax en PHP ?

A ver vamos por partes:

Necesitas que ajax procese una respuesta (cosa que no estás haciendo actualmente)

Código Javascript:
Ver original
  1. $.ajax({
  2.     type: "POST",
  3.     data: array,
  4.     url: 'livescore.php'
  5. }).done(funtion(res){ //recibe la repuesta. Leer documentación de ajax
  6.     if(res.tag){   
  7.         alert(res.tag);
  8.     }
  9. });

En php DEBES de trabajar con json_encode para enviar de nuevo los datos

Código PHP:
Ver original
  1. $response = array();
  2. if (isset ($_POST['tag']) && $_POST['tag'] != '') { //Comprobamos que haya algún tag por parte del cliente
  3.     $response['tag'] = "Tag enviada desde ajax: {$_POST['tag']}";
  4.     error_log('tag: '.$tag);
  5. }
  6. echo json_encode($response);

Esa es la idea. Se entiende?

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #8 (permalink)  
Antiguo 06/12/2013, 17:14
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 21 años, 11 meses
Puntos: 1284
Respuesta: Cual es la forma correcta de recibir un dato por ajax en PHP ?

Hola:

Particularmente considero más importante cómo enviar datos para que php los procese, y asegurarme de que sean accesibles... lo demás es trivial.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #9 (permalink)  
Antiguo 06/12/2013, 17:20
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 6 meses
Puntos: 3
Exclamación Respuesta: Cual es la forma correcta de recibir un dato por ajax en PHP ?

Amigo, analice lo que me diste y despues de un par de correcciones de sintaxis tengo esto:

JS:
Código Javascript:
Ver original
  1. var array = new Object();
  2.     array['tag'] = "NCAAB";
  3.  
  4.     $.ajax({
  5.         type: "POST",
  6.         data: array,
  7.         url: 'livescore.php',
  8.     }).done(function(respuesta) {
  9.         if (respuesta.tag) {
  10.             alert(respuesta.tag);
  11.         }
  12.     });
PHP:
Código PHP:
$response = array();
    if (isset (
$_POST['tag']) && $_POST['tag'] != '') { //Comprobamos que haya algún tag por parte del cliente
        
$response['tag'] = "Tag enviada desde ajax: {$_POST['tag']}"
        
error_log('tag: '.$tag); 
    }
    echo 
json_encode($response); 
Pero el error persiste, no me sale nada y no se a que se debe
  #10 (permalink)  
Antiguo 07/12/2013, 06:21
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años
Puntos: 96
Respuesta: Cual es la forma correcta de recibir un dato por ajax en PHP ?

Primero hay que ver si recibe datos
Código PHP:
Ver original
  1. print_r($_POST);
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.
  #11 (permalink)  
Antiguo 07/12/2013, 08:42
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 6 meses
Puntos: 578
Respuesta: Cual es la forma correcta de recibir un dato por ajax en PHP ?

Un aplauso

var array = new Array();

Prueba a ver si te funciona ahora.
  #12 (permalink)  
Antiguo 09/12/2013, 10:48
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 6 meses
Puntos: 3
Exclamación Respuesta: Cual es la forma correcta de recibir un dato por ajax en PHP ?

Amigo pongo lo de new Array(); y mas bien deja de funcionar. La variable esta llegando bien pero hay algo que yo estoy haciendo mal y no me esta funkando. Pongo aca todo mi cod y me dicen en que estoy fallando:

JS:
Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.  
  3.     var array = new Object();
  4.     array['tag'] = "NFL";
  5.  
  6.     $.ajax({
  7.         type: "POST",
  8.         data: array,
  9.         url: 'livescore.php',
  10.     });
  11.  
  12. });
PHP:
Código PHP:
$response = array(); 
    if (isset (
$_POST['tag']) && $_POST['tag'] != '') { 
        
$response['tag'] = $_POST['tag'];  
        
error_log('tag: '.$response['tag']);  
    } 

        
print_r('response: '.$response);
          echo 
json_encode($response); 

      foreach (
$games as $group) {
          
         if(
$group['league'] == $response['tag']){ // ACA DEBO DE COMPARAR CON LA VARIABLE QUE VENGA DESDE EL JQUERY POR AJAX.
               
echo '<table class="item sporTitle '.str_replace(' '''$group['league']).'">';
             echo 
"<tr><td>".$group['league']."</td></tr>";
             echo 
"</table>";

               foreach (
$group['groupeddata'] as $gameDetails) {

                   if(
trim($gameDetails['status']) == ""){
                       echo 
'<table class="item empty '.str_replace(' '''$group['league']).'" title="'.$gameDetails['homeName'].' at '.$gameDetails['awayName'].'">';
                       echo 
"<tr><td>".$gameDetails['home']." @ ".$gameDetails['away']."</td></tr>";
                     echo 
"<tr><td>".$gameDetails['time']."</td></tr>";
                     echo 
"</table>";
                    }else{
                           
                           echo 
'<table class="item full '.str_replace(' '''$group['league']).'" title="'.$gameDetails['homeName'].' at '.$gameDetails['awayName'].'">';
                             echo 
"<tr><td class=\"team , teamHome\">".$gameDetails['home'].'</td>';
                                 echo 
"<td class=\"point pointHome\">".$gameDetails['hScores']."</td>";
                                 echo 
"<td class=\"status\" rowspan=\"2\">".$gameDetails['status'].'</td>';
                                 echo 
"</tr>";
                             echo 
"<tr><td class=\"team\">".$gameDetails['away'].'</td>';
                                 echo 
"<td class=\"point\">".$gameDetails['aScores'].'</td>'
                             echo 
"</tr>";
                           echo 
'</table>';

                        }
               }
           } 
     } 
  #13 (permalink)  
Antiguo 09/12/2013, 11:07
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 6 meses
Puntos: 397
Respuesta: Cual es la forma correcta de recibir un dato por ajax en PHP ?

Me lo imaginé. No puedes imprimir nada más que el json_encode para que jQuery reconozca el JSON. Explicate que es lo que quieres hacer exactamente y por qué tienes esos echos. Si no te explicas bien y no das las explicaciones pertinentes seguiremos adivinando y eso sería un gasto inutil de recursos y fuerzas y más nos demoraremos en llegar a la solución...

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #14 (permalink)  
Antiguo 09/12/2013, 11:22
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 6 meses
Puntos: 3
Exclamación Respuesta: Cual es la forma correcta de recibir un dato por ajax en PHP ?

Gracias amigo tienes razon debi explicarme mejor.

Resumen:

Tengo un archivo js que me debe de pasar un dato al php por ajax, ejemplo: NFL. Cuando yo recorro un array donde tengo mis ligas de futbol, debo de preguntar si por la liga que va el foreach es igual a la liga que me llego desde ajax osea NFL, si es asi entonces construyame la tabla con la descripcion de los partidos de NFL que encuentre en el array.

Espero haberme explicado bien amigo. Cualquier duda preguntame...!

Etiquetas: ajax, correcta, dato, forma, recibir, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:12.