0

以前に同様の質問をしましたが、後でこのビットに JavaScript を使用する必要があることに気付きました。これが私の状況です:

製品 x と「購入」ボタンを備えたショッピング Web サイトがあります。「購入」ボタンはチェックアウト ページにリンクし、「製品」と「価格」という 2 つのグローバル変数を持つ JavaScript 関数もリンクしています。これらの 2 つの変数をチェックアウト ページに表示したいと考えています。このページは、ユーザーが押した [購入] ボタンに応じて自動更新されます。

var x = "iPhone";
var xprice = 199.99;
var product;
var price;

function productX(){
    product = x;
    price = xprice;
}

^^^^うまくいきません。変数が書き込まれている領域で「未定義」を中継するだけです。私がやろうとしていることを理解できれば、誰かが私を助けてくれますか?

確認ページに、ユーザーが購入しようとしている製品と、ユーザーが押した購入ボタンに応じた価格を表示したいだけです。JavaScriptを使用して動作させることができないようです。PHP、データベース、または Cookie を使用したくありません。

ありがとうございました

4

2 に答える 2

1

2 番目のページに値を渡したい場合は、2 番目のページのリンクの URL に値を追加する必要があります。

2 番目のページがチェックアウトと呼ばれると仮定します。おそらく次のようにチェックアウトページにリンクします。

<a href="checkout">Checkout</a>

現在、これを行うためにフォーム送信を使用することはできません...詳細については、ここを参照してください: クエリ文字列パラメーターと隠しパラメーターを使用して GET フォームを送信すると、非表示になります

クエリ文字列を自分で作成する必要があります.. (これは?something=10&somethingelse=20URL の ) の部分です。

必要なことは、イベント リスナーを介してボタンのクリックに JavaScript 関数をアタッチすることです。また、リンクに ID を付与する必要があります。この関数には、アイテムの価格と名前の 2 つのパラメーターがあります。

<a id="checkout" href="checkout">Checkout</a>

function checkout(price, name)
{
  document.getElementById('checkout').href += "?price="+price+"&name="+name;
}

2 番目のページが読み込まれたら、文字列値を配列に分割して URL からこれらの値を取得する必要があります。

ここを参照してください: GET パラメーターから値を取得する方法?

于 2012-04-28T02:43:22.817 に答える
1

PHP や Cookie を使用せずに、あるページから別のページにデータを渡そうとすると、これは困難になります。

次のページに移動するための「購入ボタン」を備えたフォームがあると仮定すると、フォームの action="GET" を設定し、フォームに 2 つの非表示フィールドを設定できます。

<input id="productInput" type="hidden" name="prpduct" value="" \>
<input id="priceInput" type="hidden" name="price" value="" \>

そして、関数を次のように変更する必要があります。

function productX(){
document.getElementById("productInput").value = x;
document.getElementById("priceInput").value = xprice;
}

これにより、JavaScript は値を GET 経由で次のページに渡すことができます。

確かに、javascript はそのために設計されていません。したがって、次のページでこれらの値を取得するには、次のような関数を使用する必要があります。

function GetFromUrl(url, key) {
var pairs = url.substring(url.indexOf('?') + 1).split('&');
for (var i = 0; i < pairs.length; i++) {
  var pair = pairs[i].split('=');
  if(key == pair[0])
     return pair[1];
}
return null;
}

(こちらのカサブランカへのクレジットURL から JavaScript 配列を作成してください 私は彼の関数を変更しました)

次に、本体の onload で、この関数を次のように呼び出します。

product = GetFromUrl(window.location, "productInput");
price = GetFromUrl(window.location, "priceInput");

ここから、実際のページを変更するために document.getElementById() を実行する必要があります。

あまり説明的でなくてすみません…

于 2012-04-28T02:52:46.173 に答える