2017-04-20 50 views
0

我有一個問題,我想從一個mysql數據庫中獲取一些數據(這不是問題)。 比方說,我想從列「Ticketkosten」PHP,Javascript獲取mysql數據並在javascript中計算

$result = $wpdb->get_results("SELECT * FROM prijzen"); 
foreach ($result as $print) { 
    $ticketkosten = $print->Ticketkosten; 
} 

然後我想所有這些數據,並從「Ticketkosten」所有的數據傳遞到JavaScript funtion,然後做一個計算並顯示所有數據最終價格。 我想這樣做的原因是因爲我使用「組合框」,當我在此框中更改值時,計算必須再次實時完成。

的JavaScript代碼,我有現在的問題是:

var aantal_boekingen= new Array(); 
aantal_boekingen["option1"]=1; 
aantal_boekingen["option2"]=2; 
aantal_boekingen["option3"]=3; 
aantal_boekingen["option4"]=4; 
aantal_boekingen["option5"]=5; 

var ticketkosten = 12; //THIS SHOULD BE THE MYSQL "TICKETPRIJZEN" DATA 

var boekingskosten = 1; 

var transactiekosten = 0.29; 


function boekingen() { 
    var aantalBoekingen=0; 
    var theForm = document.forms["vergelijk_form"]; 
    var selectedBoekingen = theForm.elements["aantal_boekingen"]; 

    aantalBoekingen = aantal_boekingen[selectedBoekingen.value]; 

    return aantalBoekingen; 
} 

function calculateTotal() { 
    var ticketprijs = ticketkosten + ((boekingskosten + transactiekosten)/boekingen()); 
    var totaalPrijs = ticketprijs/boekingen(); 

    var x = document.getElementsByClassName("totalPrice"); 
    var i; 
    for (i = 0; i < x.length; i++) { 
     x[i].innerHTML = "€"+totaalPrijs.toFixed(2); 
    } 
} 

,你看現在的硬編碼ticketkosten,我想要的是對數據庫中的數據這ticketkosten變量的變化。

JavaScript代碼現在正在工作,但我希望它不被硬編碼。

所以簡而言之:我想從數據庫中獲取價格「Ticketkosten」,然後將其從PHP傳遞到JavaScript並使用這些價格進行計算。

任何人都可以幫我嗎?我現在堅持了一個多星期。

回答

1

有很多解決方案。

您的JavaScript代碼是什麼?在一個PHP文件中?在一個JS文件?

如果是在一個PHP文件,你可以這樣做:

var ticketkosten = <?= $ticketkosten ?>; 

其中$ ticketkosten是從數據庫中的值。

如果你在一個JS文件。你可以從這樣的數據屬性獲得的價值:

var ticketkosten = document.getElementById('oneDomElement').getAttribute('data-ticketkosten'); 

哪裏oneDomElement可以是你希望(隱藏或不)任何HTML元素。它包含來自數據庫的值data-attribute

+0

感謝您的回答。它的所有內容都在同一個PHP文件中,php代碼位於頁腳正文和javascript之後。所以唯一要做的就是添加var ticketkosten = <?= $ ticketkosten?>; ?我的JavaScript技巧是非常基本的,如果我甚至獲得了基本知識:P – Dutchdeveloper

+0

是的,如果您定義var'ticketkosten'的JavaScript代碼位於知道ticketkosten值的PHP代碼之後,那麼您可以輕鬆地執行'var ticketkosten = <?= $ ticketkosten?>;' –

+0

謝謝,它有用。剩下的唯一問題就是它只能得到列的最後一個值,比如說0,80而不是1,20和1,0 – Dutchdeveloper