簡體   English   中英

JavaScript在函數之間傳遞變量並對其進行處理

[英]JavaScript passing variables between functions and processing them

我正在基於JavaScript的頁面上工作,該頁面會根據用戶選擇的內容(地區,服務(12歲以下)和體重)返回送貨費用。 我只是不懂JS,所以迷路了。

我的問題是:

  1. 是否可以在函數之間傳遞變量-如以下腳本中所述?
  2. 一旦實現了以上所述,我需要處理變量以顯示結果,現在我可以進行大量的ifelse了,因為這將有30種奇怪的可能性,所以我真的不想這么做。 所有必需的信息都在SQL DB中,因此這將是我的首選,但是我不確定如何使用JS(整個瀏覽器端,服務器端問題)執行此操作。 我是否需要將變量(如上所述)傳遞給PHP(一旦設置了所有3個變量)以從SQL DB中獲取數據? 如果是這樣,我不確定如何執行此操作。
  3. 如果我確實使用PHP,則必須重新加載頁面,是否有可能使頁面與用戶無縫連接,即,他們的所有選擇仍然顯示?

     function flag(nation, area) { this.nation = nation; var el = document.getElementById("desc"); el.innerHTML = 'The region you have selected is <b>' + area + '</b>'; document.getElementById("flag").innerHTML = '<img src="images/flags/' + nation + '.jpg">'; } function output(service) { this.service = service; var el = document.getElementById("service-desc"); el.innerHTML = 'You have selected a <b>' + service + '</b> service.'; document.getElementById("clock").innerHTML = '<img src="images/clock-' + service + '.png">'; } function result() { //get varibles(nation & serive) from functions above ~ not sure how to do this! //process varibles if (nation == "UK" && service == "Standard next day") { document.getElementById("result").innerHTML = '£9.99'; } else if (nation == "UK" && service == "Before 12pm") { document.getElementById("result").innerHTML = '£14.99'; } // etc,etc,etc.... else { document.getElementById("a1").innerHTML = ""; } } 

基本上有三種選擇:

  • 讓PHP腳本將所有數據作為JavaScript數組放置在頁面上,並處理JavaScript中的所有內容。 如果數據總量不太多,這是一個好的解決方案
  • 當用戶做出選擇並處理PHP中的所有內容(包括保留現有選擇)時,重新加載整個頁面-這是使其在不使用JavaScript的情況下工作的唯一方法,但其他方面也有缺點。
  • 用戶進行選擇時使用AJAX ,即JavaScript在后台調用服務器,並且特殊的PHP腳本僅返回相關數據(通常使用JSON格式),然后JavaScript會使用這些數據來更新頁面。 這就是如今通常的做法。

您需要AJAX-在PHP中編寫服務器端數據提要,在JS中編寫瀏覽器端微型應用程序,以與服務器提要進行對話並相應地更新網頁。 這是使用Javascript的XMLHttpRequest對象實現的。 我強烈建議您學習使用它,然后依賴包裝它的JS庫並提供更高級別的服務(如jQuery)

在javascript中,如果您在函數外部聲明變量,則可以從任何函數中使用它,這是全局變量。 例如

var x, y;
function flag(nation,area)
{
  x = nation;
  y = area;
}
function output(service)
{}    
function result() {
  //In here you can do whatever you want with x and y
}

您最好創建一個PHP腳本,該腳本從數據庫中獲取數據並將其返回給javascript。 最好的方法是AJAX調用,這將使您能夠從數據庫中獲得所需的數據,並且僅更新頁面的特定部分而不是整個頁面。

我建議看看jQuery,因為它具有一些非常易於使用的AJAX方法。 它只是一個包裝javascript的庫,並具有許多易於使用的功能, 此處提供了很好的介紹視頻

這是有關如何使用jQuery調用從數據庫獲取數據的PHP腳本的教程

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM