Jquery variables in JSON to PHP


Jquery variables in JSON to PHP

我使用Jquery和PHP一起进行一些Ajax调用。这与我正在做的事情类似:

 $.ajax({
        type: "POST",
        dataType: 'json',
        url: "http://example/ajax",
        data: { test: test },
        cache: false,
        async: true,
        success: function( json ){
            $.each( json.rows, function( i, object ){
                //Example: object.date            
                <?php date('g:ia', $objectDate ) ?>;
            });
        }
    });

我需要的是传递一些JSON对象到PHP,例如对象。日期$objectDate,然后对它们做一些操作。这可能吗?

PHP在服务器端执行,JS在客户端执行。一旦服务器处理了AJAX调用,它就不再知道客户机上发生了什么。

您已经通过AJAX调用将数据从JS传递到PHP。如果您需要在PHP中处理该数据,请在返回调用之前进行处理,那么返回JSON对象只是为了在PHP中重新处理它是没有意义的。

总之,你应该做的是:

  1. 通过AJAX调用将一些数据从客户端传递到服务器
  2. PHP处理这些数据并返回一个JSON对象
  3. JS处理JSON对象,例如,修改页面的HTML。
  4. 如果您需要用PHP进一步处理新生成的数据,请执行其他AJAX调用。

另外,如果你需要JS使用第2点生成的任何变量,只需在JSON对象中返回它,这就是它的作用。

这是一个从JS到PHP,从PHP到JS的基本概述:

要将对象从Javascript传输到PHP(并保存它),需要使用JSON对数据进行编码。stringify:

var data = { message: "Hello" };
$.ajax({
    data: { data: JSON.stringify(data) },
    // ...
});

然后,在PHP中,您可以使用json_decode将发布的JSON字符串转换为PHP数组,这非常容易使用:

$data = json_decode($_POST['data'], true);
echo $data['message'];
// prints "Hello"

将JSON作为响应发送回浏览器(对于您的success回调),使用json_encode,如下所示:

header('Content-type: application/json');
echo json_encode(array(
   'message' => 'Hello, back'
));