0

この問題にすでに対処している既存の質問と回答があることを理解しています。私はそれらを調べましたが、私の状況では、これらのスレッドで提供されているソリューションを適用することはできません。

JavaScriptがクライアント側であり、PHPがサーバー側であるとすると、提供される2つのソリューションは次のとおりです。

GET / POSTメソッド(投稿#3)

AJAXメソッド


制限:Facebookページタブアプリケーション

FacebookページタブはiFrameに読み込まれ、クエリ文字列にアクセスできないため、上記の方法でURLを介してパラメーターを渡すことはできません。Facebookは、app_dataFacebookオブジェクトのGETパラメーターsigned_requestをJSONエンコーディングと一緒に使用することで回避策を提供します。


制限の解決:app_dataGETパラメーターの使用

同じページを再度ロードすることで同じページにパラメーターを渡すことができますが、それでもPHPの変数と値のみを扱っています

fer.php

<?php
$appData = array();
if (!empty($signedRequest) && !empty($signedRequest['app_data'])) {
    $appData = json_decode($signedRequest['app_data'], true);
}

echo '<pre>' . print_r($appData) .'</pre>';
//prints Array ( [lat] => 123 [lon] => 456 ) when fer.php reloads

$params = array(
'lat' => '123',
'lon' => '456'
);

$encodedParams = urlencode(json_encode($params));

$tabUrl = 'http://www.facebook.com/pages/FACEBOOK_PAGE/367117263337064?sk=app_433576149993619';
//$tabUrl will open fer.php

$linkUrl = $tabUrl . '&app_data=' . $encodedParams;
?>
...
function loopPage() 
{
        top.location = "<?= $linkUrl ?>";
        //reloads fer.php
} 

参照: http: //labs.thesedays.com/blog/2011/06/23/query-strings-for-facebook-page-tabs/


また試した:

Cookieメソッド(まだPHP変数と値のみを扱っているため削除されました)

JavaScriptを使用encodeURIComponent()してencodeURI()(これらのメソッドはURL全体をエンコードし、渡されたパラメーターはによって認識されないため、間違ったアプローチjson_decode

現在試行中: Ajaxを使用したJSON(XMLHttpRequest)

JSONデータをJavascriptからPHPに送信しますか?

JavascriptからPHPに、またはその逆にデータを渡す方法は?


私が本当に達成しようとしていること:

FacebookiFrameの同じページでJavaScript値を取得するPHP変数。ページをリロードしてパラメータを自分自身に渡すことは問題ありません。

fer.php(間違った例)

function someValues(){
    varA = 123;
    varB = 456;
}

<?php
    $cupA = varA;
    $cupB = varB;
?>

私はこの問題を何日も解決しようとしてきましたが、リダイレクトURL = xに追加する前にデータを追加することで、だまそうとすることさえありjson_decodeます%。助けや指示があれば本当に感謝しています。ありがとう!

4

3 に答える 3

4

次のことを行うかどうかはまだ明確ではありません。

  1. PHPで受け取ったデータapp_dataをJavaScriptに渡す、または

  2. JavaScriptからPHPにデータを渡します。

PHPからJavaScriptにデータを渡す

<head>
<script type="text/javascript">
var app_data = <?php echo json_encode($appData); ?>;
</script>
</head>
<body>
...

JavaScriptからPHPにデータを渡す

$.ajax({
    url: location.pathname, // current page
    type: 'POST',
    data: {
        vara: 'hello',
        varb: 'world'
    },
    success: function() {
        // ...
    }
});
于 2012-06-14T10:22:49.573 に答える
2

たとえば、HTMLコードなどのJavaScriptを使用して簡単に行うことができます。

<select id = "Select" onchange = "FijarPrecio (this.id);" >
    <option value = "10"> product 1 </ option>
    <option value = "20"> product 2 </ option>
    <option value = "30"> product 3 </ option>
</select>
<input type = "text"  name = "Price" id = "Price"/>
<script type = "text/javascript" >
    FijarPrecio function (id) {
       PrecioSel var = document.getElementById (id);
       PrecioActual var = document.getElementById ('Price');
       PrecioActual.value = PrecioSel.value;
    }
</script>   
于 2012-12-08T15:04:03.117 に答える
-1

私が本当に達成しようとしていること:

FacebookiFrameの同じページでJavaScript値を取得するPHP変数。ページをリロードしてパラメータを自分自身に渡すことは問題ありません。

最も簡単な方法:フォーム要素を生成し、いくつかの(非表示の)入力フィールドを入力して、サーバーにPOSTします。

AJAXも可能であり、リロードを必要としないため、ユーザーにとってはより良いかもしれません。

あなたは問題を詳細に説明していないので、私はそれが主にあなたの側のこれらの問題に関する知識/経験の一般的な不足によるものであると推測することができます。したがって、関連するテクニックの一般的な理解を得るために、最初にいくつかのチュートリアルを探すかもし​​れません。

于 2012-06-14T09:53:19.213 に答える