質問

このコードを使用する

var sw = window.screen.width;
$.post("http://www.example.com/track.php", {result: sw
}, "html");

および $_SERVER['結果'];サーバーで画面の幅を取得しようとしていますが、機能しません。それは「結果」に何か問題があるのです。私は Javascript と jQuery の初心者です...

http://api.jquery.com/jQuery.post/

役に立ちましたか?

解決

$_SERVER サーバー変数、つまり、オペレーティング システム、リファラー URL、サーバー上のさまざまなフォルダーへのパスなどが含まれます。

代わりに探しているのは、 $_POST 配列、 $_GET 配列、または $_REQUEST 配列。ここで当たり前のことを述べているかもしれませんが、その内容は次のとおりです。

  • $_POST スクリプトに POST されたすべての変数のリストが含まれます。
  • $_GET クエリ文字列内のすべての変数のリストが含まれます (例: someScript.php?x=1&y=2)
  • $_REQUEST のマージが含まれています $_POST, $_GET そして $_COOKIE (通常はこの順序で)。これを使用することはお勧めしません:あなたがすべき 知る スクリプトに変数を取得し、その配列を具体的に使用するために使用しているメソッド。

あなたの場合、以下を確認する必要があります。 $_POST 配列。これを一度実行すると常に便利です。

print_r($_POST);

これにより、そのページに投稿されたすべてが表示されます。

他のヒント

jQuery $.post 関数は、サーバーに post リクエストを送信します。これは、「result」の値にアクセスするには、$_POST スーパーグローバルから取得する必要があることを意味します。

$_SERVER['result'] の代わりに $_POST['result'] を試してください。

これらの説明が役に立つかもしれません (出典: http://www.nusphere.com/php/php_superglobals.htm):

  • $_POST- スーパーグローバル $_POST は、PHP に送信されるデータを表します。 スクリプトをHTTP POSTで送信する。これは のメソッドを持つフォームである。 ポスト。
  • $_サーバー- スーパーグローバル$_SERVERは、利用可能なデータを表します。 ウェブ・サーバーからPHPスクリプトへ そのもの(探しているものではない)
  • $_REQUEST- REQUESTスーパーグローバルは、以下の組み合わせである。 GET、$_POST、$_COOKIE(これは しかし、なぜGETとCOOKIEを検索するのか? 値がPOSTであることが分かっている場合)

やってみます:

echo $_POST['result'];

使用$_REQUEST['result']

  

$_SERVER のようなヘッダ、経路などの情報を含む配列であります、およびスクリプトの場所。この配列のエントリは、Webサーバーによって作成されます。すべてのWebサーバーは、これらのいずれかを提供するという保証はありません。サーバは、いくつかを省略し、またはここに記載されていない他のものを提供することができる。

     

$_REQUEST にデフォルトで含まれていることを連想配列であります$_GET$_POST$_COOKIEの内容。

正しい方法は、ここで他の人が示唆したように、$_POST['result']を使用することです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top