2017-06-10 9 views
-2

商品にアクセサリーを追加する選択肢があります。私がしたいことは、ページをリフレッシュせずに価格を再計算することです。これは私が今までに得たものです:リフレッシュせずに値を送信してから値を再計算する

<form action="" method="post"> 
    <select name="option" onchange="this.form.submit()"> 
    <option value="15">Acc1</option> 
    <option value"30">Acc2</option> 
    <option value"45">Acc3</option> 
    </select> 
    </form> 
$oldprice ='678'; 
    $option = $_POST['option']; 
    $newPrice= $oldprice + $option; 

これは素晴らしいですが、ページを更新する必要があります。ページを更新することなく新しい価格を再計算する方法はありますか? そしてまた、例えばページ上の他の場所でのオプションの値を使用し

If ($_POST['option] == '15'){ \do something} 

歓迎は

+2

はい使用アヤックス... [更新せずページの更新データ]の –

+1

可能な複製(https://stackoverflow.com/question/22577457/update-data-on-a-page-refresh-without-refreshing) –

+0

@FastSnail返信いただきありがとうございます。既にそのページを見ていますが、ページを更新せずに投稿された値をどのように使用できるかわかりません、。申し訳ありません – Ria

答えて

0

あなたはAJAXを使用するか、または可能性がすべてのヘルプに必要な情報は、基づいているように見えるページ内にすでにある場合あなたの例のコードを、あなたは関数であることをonchangeを変更することができます:

onchange='updatePrice()' 

サンプル・機能コード:

function updatePrice(){ 
    var e = document.getElementsByName("option")[0]; 
    var accessory_value = e.options[e.selectedIndex].value; 
    //additional code to update the price where 
} 
+0

あなたの返信ありがとう、しかし、私はまだ再計算するために実際の価格を取得する方法がわかりません。私はこの$ newPrice = $ oldprice + $オプションをここに//追加コードを入れようとしますが、オプションが選択されていないと値段が0になるので正しい方法ではありません – Ria

+0

'$ newPrice = $ oldprice + $ option 'はJavascriptコードではないPHPコードです。追加コードは、価格を表示し、その値またはinnerHTMLを更新する要素を選択するJavaScriptコードである必要があります。ユーザーがアクセサリを変更した場合には、ベース価格をどこかに保存しておきたいと思うでしょう。 –

+0

おそらくあなたが推測した問題は、私はJavascriptにあまり慣れていないということです。正直言って、どこから始めるべきか分かりません。 – Ria

0

selectタグのフックonchangeイベント。

例:

<select onChange="calculate(e)"> 
    // option here 
</select> 

* .jsファイル:

function calculate(e) { 
    console.log(e.target.value); 
} 
+0

申し訳ありませんが動作しませんでした新しい価格に更新されませんでした – Ria

関連する問題