1

如果我有一个变量需要在不刷新页面的情况下发布到 PHP 脚本。这可能吗?如果是这样,怎么办?

我使用 jQuery 的尝试:

$.ajax({
   url: "myphpfile.php",
   type: "post",
     data: json/array/whatever,

     success: function(){ // trigger when request was successfull
       window.location.href = 'somewhere'
     }
   })

我将如何接收在我的 php 脚本中传递的数组?

4

2 回答 2

1

用于GM_xmlhttpRequest()允许跨域帖子(在大多数情况下都是如此)。

Greasemonkey 脚本:

// ==UserScript==
// @name     _Sending arbitrary data, demo
// @include  http://YOUR_SERVER.COM/YOUR_PATH/*
// @grant    GM_xmlhttpRequest
// ==/UserScript==

var someArray       = [1, 2, 3];
var serializedData  = JSON.stringify (someArray);

GM_xmlhttpRequest ( {
    method:     "POST",
    url:        "http://SERVER.COM/PATH/ShowJSON_PostedData.php",
    data:       serializedData,
    headers:    {"Content-Type": "application/json"},
    onload:     function (response) {
                    console.log (response.responseText);
                }
} );


ShowJSON_PostedData.php:

<?php
    echo '<title>JSON data</title>';

    echo '<h2>JSON post data:</h2><pre>';

    $jsonData   = json_decode($HTTP_RAW_POST_DATA);
    print_r ($jsonData);

    echo '</pre>';
?>


控制台。将会呈现:

<title>JSON data</title><h2>JSON post data:</h2><pre>Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)
</pre>
于 2012-12-10T20:06:56.827 回答
0

该线程的已接受答案可能非常有用,因为它显示了一个简单的案例:使用 jquery $.ajax 调用 PHP 函数

我的建议是:做一些有用的东西,然后逐渐增加复杂性,直到你达到你的定制案例。这样,您会感觉更安全,并且您会在潜在问题进入时意识到它们。

要将数组从 php 传递到客户端,您可以echo json_encode($myArray);在 php 脚本中使用。

希望这可以帮助

于 2012-12-10T20:21:38.320 回答