2012-03-26 12 views
1

私はPhoneGapでWebアプリケーションを作っています。私の現在のハードルは次のとおりです。サーバサイドの干渉なしにJavaScript変数を次のページに渡す?

ページ1では、ユーザーは緯度と経度を選択し、次にヒットします。フォーム上のいくつかの素晴らしいGETアクションと次のページのjavascript URLパーサで、次のページはlatとlngの座標を渡されます。この新しいページで、ユーザは半径を入力するよう求められます。同じ方法で、半径が最後のページに渡されます。最後のページには、座標と半径から作成された円のあるGoogleマップが表示されます。

しかし、問題は、最終ページに半径を渡すと、明らかにが半径を通過するだけです。フォーム情報の一部ではない第2ページから緯度と経度をどのようにして渡すことができますか?彼らはすでに確立されています。 3つの変数を1つのページに入れることが明らかな解決策であることはわかっていますが、私のコントロールを超える愚かな理由から、この方法が必要です。

したがって、質問は、次のページにJavaScriptの変数として存在する情報をどのように渡すのですか?これはフォームの一部ではありません。単なる変数。

+0

'' – zzzzBov

+0

私はどのように値を記入するためにJavaScriptを使用できますか?それはdocument.getelementbyid(hiddenInputThingy).value =変数ですか? – Aerovistae

+0

はい、そうするでしょう。またはあなたがそのGET要求を言ったので、URLに値を追加することもできます。 – Deepu

答えて

1

フォームに隠れた入力要素をいくつか追加するだけです(<input type="hidden" />)。

これは多くの方法で行うことができます。

$('<input type="hidden" name="lat" />').val(latitudeValue).appendTo(formSelector); 
$('<input type="hidden" name="lng" />').val(longitudeValue).appendTo(formSelector); 

生JSが少し長くなるが、特に複雑ではない:最短ライブラリを使用することである(例えば、コードは、jQueryのことを起こる)

//I haven't checked this, so some cross-browser tweaking might be necessary 
var lat, 
    lng, 
    form; 
lat = document.createElement('input'); 
lat.type = 'hidden'; 
lat.value = latitudeValue; 
lng = document.createElement('input'); 
lng.type = 'hidden'; 
lng.value = longitudeValue; 
form = document.querySelector(formSelector); 
form.appendChild(lat); 
form.appendChild(lng); 

latitudeValuelongitudeValue、及びformSelectorは変数でありますページのコンテキストで定義する必要があります。別のパラメータ名(name="longitude"など)を使用することもできます。


それはあなたが本当にあなたが連続したGETリクエストを行っていないように、ページの内容を変更するためにAJAXを使用する必要があるように聞こえます。代わりに、ユーザーが処理中のステップに応じて、ページのメイン・コンテンツを単純に入れ替えることができます。 URLの解析(間違って行うのは簡単です)を行う必要がなくなります。

+0

私は最後の部分に同意しますが、私はWeb開発の初心者であり、現時点ではAJAXを学ぶのは時間制約を超えています。私は、AJAXがPhoneGapで動作するものなのかどうかも分かりません。私はそれについて素晴らしいことを聞いたことがある。 – Aerovistae

0

Javascriptで取得データにアクセスできます。したがって、次のページにデータを渡すだけで、URLのデータを取得し、Javascriptで次のように解析します。あなたのURLは、末尾に?foo=1&bar=2が含まれてい

、あなたはFOOを解析し、Javascriptを/ jQueryのを使用してクッキーを作成し、それに値を追加することです

var parts = window.location.search.substr(1).split("&"); 
var $_GET = {}; 
for (var i = 0; i < parts.length; i++) { 
    var temp = parts[i].split("="); 
    $_GET[decodeURIComponent(temp[0])] = decodeURIComponent(temp[1]); 
} 

alert($_GET['foo']); // 1 
alert($_GET.bar); // 2 
0

簡単オプションでバーすることができます。したがって、すべての値をすべてのページに追加し、最後にクッキーから必要なデータを取得することができます。 サーバー側スクリプトは使用していませんが、必要な値はすべて取得しています。

関連する問題