我正在开发一个基于JavaScript的页面,它返回交付成本,具体取决于用户选择的内容(区域,服务(前12等)和权重)。因为我不认识JS,所以我已经糊里糊涂了。
我的问题是:
如果我确实使用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 = "";
}
}
答案 0 :(得分:2)
基本上有三种选择:
答案 1 :(得分:0)
您想要AJAX - 在PHP中编写服务器端数据源,在JS中编写浏览器端迷你应用程序,与服务器源进行通信并相应地更新网页。这是使用Javascript的XMLHttpRequest对象实现的。我强烈建议你学习使用它然后依赖一个包装它的JS库并提供更高级别的服务(比如jQuery)
答案 2 :(得分:0)
在javascript中,如果在函数外部声明变量,则可以在任何函数中使用它,这是一个全局变量。 E.g。
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的库,并且具有许多易于使用的功能,很好的介绍视频here
这是关于如何使用jQuery调用从数据库获取数据的PHP脚本的tutorial。