Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Envio nulo "0"

Estas en el tema de Envio nulo "0" en el foro de Jquery en Foros del Web. Hola gente nuevamente tengo un problema con el siguiente script y es que siempre manda valor Nulo "0". @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original ...
  #1 (permalink)  
Antiguo 26/12/2014, 18:23
 
Fecha de Ingreso: diciembre-2012
Ubicación: Murcia
Mensajes: 329
Antigüedad: 11 años, 4 meses
Puntos: 4
Envio nulo "0"

Hola gente nuevamente tengo un problema con el siguiente script y es que siempre manda valor Nulo "0".

Código Javascript:
Ver original
  1. $('.staff').click(function(){
  2.     swal({
  3.         title: "¿Quiere continuar?",  
  4.         text: "Te seran descontados " + $(this).attr('data-price') + ' Scores.',  
  5.         type: "warning",  
  6.         showCancelButton: true,  
  7.         confirmButtonColor: "#DD6B55",  
  8.         cancelButtonText: "Cancelar",
  9.         confirmButtonText: "Confirmar",  
  10.         closeOnConfirm: false
  11.     }, function(){
  12.          $.post( "ajax/rewards_score.php", { bid: + $(this).attr('data-id') })
  13.             .done(function( data ) {
  14.             if(data == "ok") {
  15.                 swal("Super!", "Ha canjeado exitosamente", "success");
  16.             } if(data == "error") {
  17.                 swal("Oops...", "No tienes suficiente Score como para canjear ese premio.", "info");
  18.             } if(data == "fail") {
  19.                                swal("Oops...", "Ese premio no existe", "info");
  20.                         }
  21.         });
  22.     });
  23. });

De aqui saco todos los premios disponibles para canjear con un único id.
Código PHP:
$sql mysql_query("SELECT * FROM reward_game_score ORDER BY ID ASC");
while (
$row mysql_fetch_assoc($sql)) {
    echo 
' < div class = "staff box2" data-price = "'.$row['precio'].'"
    data-id = "'
.$row['furni_id'].'" >
        < div class = "holder" >
        < img src = "/img/furni/'
.$row['img'].'.gif" > < br >
        < img src = "/img/game/score.png" > '
.$row['
    precio '
].' < input type = "hidden"
    id = "bid"
    value = "'
.$row['furni_id'].'" >
        < /div> < /div>
    '
;

y esto el reward_score.php

Código PHP:
if(isset($_POST['bid'])) {
 
$item_id intval($_POST['bid']);

$sql3 mysql_query("SELECT * FROM reward_game_score WHERE furni_id = '".$item_id."'");
$sql4 mysql_query("SELECT * FROM score_game WHERE user_id = '".$myrow['id']."' LIMIT 1");

$row mysql_fetch_assoc($sql3);
$myrows mysql_fetch_assoc($sql4);
$count mysql_num_rows($sql3);

if(
$count == "1"){
    if(
$myrows['score_total'] < $row['precio']){
            echo 
'error'//No tienes score para canjear.
        
} else {
            echo 
"ok";
        }
} else {
echo 
"fail";
}


Espere que me puedan echar una mano.

PD: la variable myrow['id'] es la que identifica al usuario
  #2 (permalink)  
Antiguo 27/12/2014, 00:28
(Desactivado)
 
Fecha de Ingreso: enero-2013
Mensajes: 289
Antigüedad: 11 años, 3 meses
Puntos: 10
Respuesta: Envio nulo "0"

has puesto los ids entre comillas. Los enteros van sin comillas.

Código PHP:
Ver original
  1. $sql3 = mysql_query("SELECT * FROM reward_game_score WHERE furni_id = '".$item_id."'");
  2. $sql4 = mysql_query("SELECT * FROM score_game WHERE user_id = '".$myrow['id']."' LIMIT 1");
  #3 (permalink)  
Antiguo 27/12/2014, 04:54
 
Fecha de Ingreso: diciembre-2012
Ubicación: Murcia
Mensajes: 329
Antigüedad: 11 años, 4 meses
Puntos: 4
Respuesta: Envio nulo "0"

Cita:
Iniciado por moginn Ver Mensaje
has puesto los ids entre comillas. Los enteros van sin comillas.

Código PHP:
Ver original
  1. $sql3 = mysql_query("SELECT * FROM reward_game_score WHERE furni_id = '".$item_id."'");
  2. $sql4 = mysql_query("SELECT * FROM score_game WHERE user_id = '".$myrow['id']."' LIMIT 1");
Nada sigue igual el mismo problema.

Acabo de hacer un var_dump($_POST)

y esto es lo que me sale.

array(1) {
["id"] =>
string(3) "NaN"
}
  #4 (permalink)  
Antiguo 27/12/2014, 18:57
 
Fecha de Ingreso: diciembre-2012
Ubicación: Murcia
Mensajes: 329
Antigüedad: 11 años, 4 meses
Puntos: 4
Respuesta: Envio nulo "0"

Alguna ayuda?. Gracias :)
  #5 (permalink)  
Antiguo 30/12/2014, 06:01
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: Envio nulo "0"

Mandá la variable de esta manera en tu AJAX:

Código Javascript:
Ver original
  1. $.post( "ajax/rewards_score.php", { 'bid': $(this).attr('data-id') })

Si sigue llegando null, chequea el contenido de $(this).attr('data-id'); antes del envío a ver si efectivamente está recibiendo el valor.
Saludos
  #6 (permalink)  
Antiguo 30/12/2014, 14:13
 
Fecha de Ingreso: diciembre-2012
Ubicación: Murcia
Mensajes: 329
Antigüedad: 11 años, 4 meses
Puntos: 4
Respuesta: Envio nulo "0"

Cita:
Iniciado por GeekGirl Ver Mensaje
Mandá la variable de esta manera en tu AJAX:

Código Javascript:
Ver original
  1. $.post( "ajax/rewards_score.php", { 'bid': $(this).attr('data-id') })

Si sigue llegando null, chequea el contenido de $(this).attr('data-id'); antes del envío a ver si efectivamente está recibiendo el valor.
Saludos
El problema del array parece haberse solucionado pero sigue enviando NULL

http://gyazo.com/35fc6ca04b4b0548f1ea8f5c9bc060f2

console.log(+ $(this).attr('data-id'));
  #7 (permalink)  
Antiguo 31/12/2014, 09:06
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: Envio nulo "0"

Ese + no va. Sacalo.

Hace también un var_dump() de $_REQUEST para ver todo lo que llega (por las dudas).
  #8 (permalink)  
Antiguo 31/12/2014, 11:39
 
Fecha de Ingreso: diciembre-2012
Ubicación: Murcia
Mensajes: 329
Antigüedad: 11 años, 4 meses
Puntos: 4
Respuesta: Envio nulo "0"

Cita:
Iniciado por GeekGirl Ver Mensaje
Ese + no va. Sacalo.

Hace también un var_dump() de $_REQUEST para ver todo lo que llega (por las dudas).
llegar llega pero Nulo, vació.

aquí el resultado del var_dump($_REQUEST);

http://gyazo.com/6a48885aa2a55f9ba720e8de0b580533
  #9 (permalink)  
Antiguo 02/01/2015, 06:37
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: Envio nulo "0"

Veo solamente una consola, y var_dump es PHP
  #10 (permalink)  
Antiguo 02/01/2015, 07:54
 
Fecha de Ingreso: diciembre-2012
Ubicación: Murcia
Mensajes: 329
Antigüedad: 11 años, 4 meses
Puntos: 4
Respuesta: Envio nulo "0"

Cita:
Iniciado por GeekGirl Ver Mensaje
Veo solamente una consola, y var_dump es PHP
Si, hice algo así, es por eso lo de consola.
Código PHP:
if(isset($_POST['bid'])) {
 
$item_id = ($_POST['bid']);

echo 
''.var_dump($_REQUEST).'';


Código Javascript:
Ver original
  1. $('.staff').click(function(){
  2.     swal({
  3.         title: "¿Quiere continuar?",  
  4.         text: "Te seran descontados " + $(this).attr('data-price') + ' Scores.',  
  5.         type: "warning",  
  6.         showCancelButton: true,  
  7.         confirmButtonColor: "#DD6B55",  
  8.         cancelButtonText: "Cancelar",
  9.         confirmButtonText: "Confirmar",  
  10.         closeOnConfirm: false
  11.     }, function(){
  12.          $.post( "ajax/rewards_score.php", { bid: $(this).attr('data-id') })
  13.             .done(function( data ) {
  14.             console.log(data);
  15.         });
  16.     });
  #11 (permalink)  
Antiguo 03/01/2015, 02:24
 
Fecha de Ingreso: septiembre-2008
Mensajes: 38
Antigüedad: 15 años, 7 meses
Puntos: 2
No le estas enviando un valor entero... Sólo le envías el control... (El cual no es un numero NaN = Not a Number)
Checa tu $.post("ajax.php"), {bid: + $(this).attr('data-id')}
Debe de estar algo así... $(this).attr('data-id').val()}
... Luego imprimes el bid tal como lo hiciste ;)
Convierte tu variable a entero... intval($valor);
Luego imprimelo ... Y ve que te marca...

Última edición por YorchX; 03/01/2015 a las 02:38
  #12 (permalink)  
Antiguo 03/01/2015, 08:07
 
Fecha de Ingreso: diciembre-2012
Ubicación: Murcia
Mensajes: 329
Antigüedad: 11 años, 4 meses
Puntos: 4
Respuesta: Envio nulo "0"

Cita:
Iniciado por YorchX Ver Mensaje
No le estas enviando un valor entero... Sólo le envías el control... (El cual no es un numero NaN = Not a Number)
Checa tu $.post("ajax.php"), {bid: + $(this).attr('data-id')}
Debe de estar algo así... $(this).attr('data-id').val()}
... Luego imprimes el bid tal como lo hiciste ;)
Convierte tu variable a entero... intval($valor);
Luego imprimelo ... Y ve que te marca...
Uncaught TypeError: Cannot read property 'val' of undefined
  #13 (permalink)  
Antiguo 03/01/2015, 23:41
 
Fecha de Ingreso: septiembre-2008
Mensajes: 38
Antigüedad: 15 años, 7 meses
Puntos: 2
Checa la manera de acceder a ese valor desde javascript... No se qué librería estarás usando... Pero accede a su valor para saber sí lo capta... :)
  #14 (permalink)  
Antiguo 07/01/2015, 12:19
 
Fecha de Ingreso: diciembre-2012
Ubicación: Murcia
Mensajes: 329
Antigüedad: 11 años, 4 meses
Puntos: 4
Respuesta: Envio nulo "0"

alfinal cambie todo el código y lo hice de nuevo pero de otra forma y funciono xD

Código Javascript:
Ver original
  1. function reward(id){
  2.     swal({
  3.         title: "¿Quiere continuar?",  
  4.         text: "Te seran descontados el valor del premio en tu score total.",  
  5.         type: "warning",  
  6.         showCancelButton: true,  
  7.         confirmButtonColor: "#DD6B55",  
  8.         cancelButtonText: "Cancelar",
  9.         confirmButtonText: "Confirmar",  
  10.         closeOnConfirm: false
  11.     }, function(){
  12.         $.get("ajax/rewards_score.php?id="+id, function(data){
  13.             console.log(data);
  14.             if(data == 'true') {
  15.                 sweetAlert("Bien...!", "Has canjeado con exito tu recompensa. ;)", "success");
  16.             } if(data == 'false') {
  17.                 sweetAlert("Oops...!", "Esa recompensa no esta en nuestra lista. :(", "error");
  18.             } if(data == 'error') {
  19.                 sweetAlert("Oops...!", "No tienes suficientes score para canjear este premio. :(", "error");
  20.             }
  21.         });
  22.     });
  23. }

Gracias a todos por la ayuda

Etiquetas: nulo
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 15:00.