【问题标题】:sending information back and forth with AJAX使用 AJAX 来回发送信息
【发布时间】:2009-06-17 16:50:05
【问题描述】:

使用$.post,你可以向服务器发送信息,但是当你需要从服务器接收信息时呢?

信息如何从可以由 php 变量保存的方式变为可以由 javascript 变量保存的方式,反之亦然?

【问题讨论】:

    标签: php javascript jquery ajax


    【解决方案1】:

    这与您的问题更相关:http://docs.jquery.com/Ajax/jQuery.post

    提示请求 test.php 的结果(HTML 或 XML,取决于返回的内容)。

    $.post("test.php", function(data){
      alert("Data Loaded: " + data);
    });
    

    使用额外的数据负载(HTML 或 XML,取决于返回的内容)发出请求 test.php 的结果。

    $.post("test.php", { name: "John", time: "2pm" },
      function(data){
        alert("Data Loaded: " + data);
      });
    

    获取 test.php 页面内容,将其存储在 XMLHttpResponse 对象中并应用 process() JavaScript 函数。

    $.post("test.php", { name: "John", time: "2pm" },
      function(data){
        process(data);
      }, "xml");
    

    获取已经以json格式返回的test.php页面内容("John","time"=>"2pm")); ?>)

    $.post("test.php", { func: "getNameAndTime" },
      function(data){
        alert(data.name); // John
        console.log(data.time); //  2pm
      }, "json");
    

    【讨论】:

      【解决方案2】:

      查看json_encode()json_decode()。这些现在是 PHP 的一部分,允许您在 PHP 数组和关联数组(或 stdClass 对象)和 javascript 数组或对象(作为 JSON 文字)之间来回切换。

      基本上,您可以执行echo json_encode($all_my_php_data); 并返回一个 javascript 对象,而不是返回 xml 或 html。

      如果您将“json”作为 $.post() 的类型参数传递,您的成功回调将包含您在 PHP 脚本中回显的 JSON 对象。

      $.post() documentation

      【讨论】:

        【解决方案3】:

        然后你需要接收服务器发回的内容。您只需使用 'data' 参数为 $.post 定义回调函数。例如:

        $.post('/index.php', { key: 'value' }, function(data) { alert(data); });
        

        您可以指定返回值的类型,以便 jQuery 自动处理它。如果你从 PHP 脚本返回 JSON 值,那么你应该在末尾添加额外的参数:

        $.post('/index.php', { key: 'value' }, function(data) {
            alert(data.someItem);
          }, 'json');
        

        但是如果你需要从 PHP 服务器获取数据而不先 POST 或 GET 任何东西,那么你需要实现 Comet。但这需要更多的工作:)

        【讨论】:

        • 所有主要的 Comet 实现都使用 GET 或 POST。
        【解决方案4】:

        jQuery.post 函数的“callback”部分是您要查看的内容。

        【讨论】:

          【解决方案5】:

          在 http 中,您执行从客户端(网络浏览器中的 JavaScript)到服务器的请求,然后处理后者返回的信息。您可以选择在两种通信中以何种方式表示信息。

          当使用 AJAX(可能通过 jQuery)时,您可以向 php 处理程序发出请求,该处理程序负责将信息返回给浏览器,通常格式为 JSON 文字(您可以使用 json_encode( ),正如布赖恩所建议的)。最终你会在客户端解析它(例如使用 jQuery)来获取一个 javascript 对象。

          ($.post( url, [data], [callback], [type] ) 函数会自动解析响应并将其交给回调函数,其签名应为 callback(data, textStatus) where data 是解析后的对象,textStatus 报告成功或失败状态 (jQuery.post)。

          【讨论】:

            猜你喜欢
            • 2013-08-25
            • 2019-02-23
            • 2015-06-27
            • 1970-01-01
            • 1970-01-01
            • 2013-05-31
            • 1970-01-01
            • 1970-01-01
            • 2015-02-06
            相关资源
            最近更新 更多