2012-01-08 20 views
0

this form scriptを使用して合計を自動的に計算しています。今、私はその合計を取得し、PHPとMySQL経由でデータベースに追加する必要があります。JavaScriptとPHPを使用した場合の合計値

totalPrice divに「名前を付ける」方法がわからないので、その値をデータベースに渡すことができます。

編集:

私はまだデータベースに結果が届きません。フィールドセットには$_POST[totalValue]、フィールド名にはtotalPriceを使用しています。

HTML:

<div id="totalPrice"></div></div> 
<input type="hidden" name="totalValue" id="totalValue" /> 

はJavaScript:jQueryのを使用して

$("#vendorform").submit(function(){ 
    var totalValue = document.getElementById('totalValue'); 
    totalValue.value = vendorPrice; //the actual total value 
}); 

function calculateTotal() 
{ 
    //Here we get the total price by calling our function 
    //Each function returns a number so by calling them we add the values they return together 
    var vendorPrice = getTentPrice() + getElecPrice() + getPropanePrice(); 

    //display the result 
    var divobj = document.getElementById('totalPrice'); 
    divobj.style.display='block'; 
    divobj.innerHTML = "Total Price Vendor $"+vendorPrice; 
} 
+0

通常、テーブル内に計算された値を挿入することはお勧めできません。 –

+0

ああ、どうしてですか?私の選択肢は何ですか? – AAAndreAAA

+0

この方法は正規化規則に違反するため、パフォーマンスを向上させるために特定の条件でのみ使用する必要があります。それ以外の場合は、クエリを保存しないでクエリを計算する方がよいでしょう。 –

答えて

1

vendorPrice変数は、関数calculateTotalの範囲外では使用できません。 vendorPriceをグローバル変数にすることはできますが、それはちょっと醜いハックです。

また、あなたはこのような何かを行うことができます:

function calculateTotal() 
{ 
    var vendorPrice = getTentPrice() + getElecPrice() + getPropanePrice(); 
    var divobj = document.getElementById('totalPrice'); 
    divobj.style.display='block'; 
    divobj.innerHTML = "Total Price Vendor $"+vendorPrice; 

    return vendorPrice; // <-- ADDED 
} 

そして、この:

$("#vendorform").submit(function(){ 
    var totalValue = document.getElementById('totalValue'); 
    totalValue.value = calculateTotal(); // <-- CHANGED 
}); 

この方法は、あなたが今totalValue.valuecalculateTotal()によって返された値を割り当てます。ところで

:あなたはすでにjQueryのを使用しているように見えることから、このようなあなたのコードを書き換えることができます(それは議論の余地のですが)

// [...] 

var divobj = $('#totalPrice'); 
divobj.css('display', 'block'); 
divobj.text("Total Price Vendor $"+vendorPrice); 

// [...] 

var totalValue = $('#totalValue'); 
totalValue.val(calculateTotal()); 

これは、それが少し読みやすくなり、もう少しクロスブラウザに依存します。 jQueryには素晴らしいドキュメントがあります(例:the documentation on .val())。より頻繁にjQueryを使用する場合は、ドキュメントをブックマークしてスキミングすることを強くお勧めします。

+0

ありがとう!私は夕食後にこれを使って遊ぶつもりです:) – AAAndreAAA

+0

ありがとう、ありがとう。これは私のために働いています。私は戻って適切に行う(他の提案ごとにw/queryを計算する)が、これは今のところ素晴らしいことだ。 – AAAndreAAA

1

$("#cakeform").submit(function(){ 
    var price = $("#totalPrice").text().replace(/[\s\S]+\$/,"") 
    $("#cakeForm").append('<input type="hidden" name="estimated_price" value="' + price + '" />') 
}) 

しかし、@ニック・RULEZが指摘したように、通常計算を保存するのは良い考えではありませんデータベース内の値。あなたは<form>...</form>の内側に配置する必要があり

<input type="hidden" name="totalValue" id="totalValue" /> 

1

あなたはに値を設定することができます。 フォームを送信すると、入力の値を受け取ることになります。

あなたはこれを隠しフィールドに値を設定することができますがsniped:

JS

var totalValue = document.getElementById('totalValue'); 
totalValue.value = myValue; //myValue is the total 
+0

今、私は値を設定する方法を学ぶ必要があります... – AAAndreAAA

+0

私は自分の答えを編集して、それがどのように完了したかを見ることができます:-) –

+0

私は泣くでしょう - あなたはとても役に立ち、データベースのtotalPriceフィールドに0を設定します。私はまだ諦めていません - 私はこの問題を回避するための脳が残っていません。 – AAAndreAAA

0

はJavaScript:

function calculateTotal() 
{ 
    var Price = getTshirtPrice() + getTshirtType() + getTshirtColour() + 
    getTextColour(); 

    var divobj = document.getElementById('textbox'); 
    divobj.value = "Total Price For the T-shirt: £"+Price; 

    return Price; 
} 

HTML:

<div id="totalPrice"><input type="text" id="textbox"></div> 

はそれを行います。それは完璧に正常に動作します。

関連する問題