He estado mirando otras preguntas relacionadas con mi problema, sin embargo, ninguna parece corresponder a mis circunstancias exactas. Estoy intentando crear una variable de JavaScript que PUBLICARÉ con Ajax en una variable de PHP más abajo en mi código. Después de esperar establecer la variable correctamente, intento POST y var_dump el resultado, sin embargo, no es el "0" que esperaba, sino un bool frustrante (falso). He leído que esto puede ser un problema con la URL (como publico desde el mismo archivo) o tal vez algún otro problema relacionado con la transferencia de datos a la solicitud de Ajax, aunque todavía no he podido resolver el problema . La prueba de los datos en la consola tampoco muestra nada, así que me he visto obligado a preguntar aquí. Gracias por cualquier ayuda u orientación.

Javascript

jQuery(document).ready(function(){var offset = parseInt("0");
        $.ajax({url: 'index.php', type: 'POST', data: offset, success:function(data){return data;}});
    });

PHP

<?php var_dump(isset($_POST['offset']));
0
masteryupa 10 dic. 2015 a las 11:23

6 respuestas

La mejor respuesta

Su problema es que está utilizando var_dump php.
Eso literalmente devuelve la cadena: "bool(true)".

Utilice var_export, en su lugar.

En lugar de:

<?php var_dump(isset($_POST['offset'])); ?>

Uso:

<?php var_export(isset($_POST['offset'])); ?>

var_export generará la representación de cadena del valor, en lugar del combo de tipo / valor que devuelve var_dump.


Si solo desea devolver el valor publicado, haga lo siguiente:

<?php var_export($_POST['offset']); ?>

O:

<?php echo json_encode($_POST['offset']); ?>

Solo tenga en cuenta que necesita pasar los datos a post, correctamente:

data: { offset: offset }

En lugar de:

data: offset
1
Cerbrus 10 dic. 2015 a las 09:02

Agregue un index llamado offfest

$.ajax({
    url: 'index.php', 
    type: 'POST', 
    data: {offset:offset}, 
    success:function(data){
        return data;
    }
});
3
roullie 10 dic. 2015 a las 08:29

Puedes probar con:

jQuery(document).ready(function(){
    $.ajax({url: 'index.php', type: 'POST', data: {offset: parseInt("0")}, success:function(data){return data;}});
});
3
jiboulex 10 dic. 2015 a las 08:29

Js:

var offset = parseInt("0");
$.ajax({url: 'index.php', type: 'POST', data:{offset: offset},success:function(data){alert(data.offset);}});

Php:

<?php echo json_encode(array('offset'=>isset($_POST['offset'])));
1
madalinivascu 10 dic. 2015 a las 09:08

Debe dar un nombre a la variable de desplazamiento, así que cambie su parámetro de datos a un formato JSON:

$.ajax({url: 'index.php', type: 'POST', data:{ 'offset': offset},success:function(data){return data;}});
0
ZuoTao.Chou 10 dic. 2015 a las 08:33

No estoy totalmente familiarizado con PHP, pero en su código javascript, los datos deben ser el diccionario para la publicación de Ajax. algo así como {'offset': 0}

2
Vahid Msm 10 dic. 2015 a las 08:29