2010-02-10 4 views
0

사용자가 선택한 지역, 서비스 (프리 12 등) 및 가중치에 따라 게재 비용을 반환하는 JavaScript 기반 페이지에서 작업하고 있습니다. 나는 JS를 몰라서 내 길을 혼란스럽게 만들었다.함수 사이의 JavaScript 전달 변수 및 처리

내 질문은 :

  1. 나는 변수는 기능 사이를 통과 할 수 - 아래의 스크립트에 설명 된대로?
  2. 일단 위와 같은 결과가 나오면 결과를 표시하는 변수를 처리해야합니다. 이제는 30 가지 이상한 가능성이 있기 때문에 실제로 원하지 않습니다. 필요한 모든 정보는 SQL DB에 있으므로 이것이 내가 선호하는 선택 일 것이지만 JS, 전체 브라우저 쪽, 서버 쪽 문제와 함께이 작업을 수행하는 방법을 잘 모르겠습니다. SQL DB에서 데이터를 가져 오기 위해 PHP에 변수 (위와 같이)를 전달해야합니까? 그렇다면 어떻게해야할지 모르겠습니다.
  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 = ""; 
        } 
    } 
    

답변

0

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 스크립트를 만드는 것이 가장 좋습니다. 이 작업을 수행하는 가장 좋은 방법은 AJAX 호출 일 수 있습니다. 그러면 원하는 데이터베이스에서 원하는 데이터를 얻고 전체 페이지가 아닌 특정 페이지 부분 만 업데이트 할 수 있습니다.

메서드를 사용하기가 매우 쉽기 때문에 jQuery을 사용하는 것이 좋습니다. 그것은 자바 스크립트를 감싸고 있고 사용하기 쉬운 많은 기능, 좋은 소개 vids를 가지고있는 라이브러리 일뿐입니다. here

jQuery를 사용하여 데이터베이스에서 데이터를 가져 오는 PHP 스크립트를 호출하는 방법은 여기 tutorial입니다.

+0

감사합니다 - varibles는 onClick (onClick = "flag ('scotislands', 'Scottish islands');)에서 발생합니다. – Bift

+0

이러한 변수의 값을 설정하는 방법을 보여주기 위해 코드 샘플을 업데이트했습니다. 그런 다음 다른 함수에서 액세스 할 수 있습니다. – Fermin

0

당신은 AJAX 원하는 - 서버 피드에 이야기하고 그에 따라 웹 페이지를 업데이트 JS에서 PHP의 서버 측 데이터 피드와 브라우저 측 미니 응용 프로그램을 작성. 이는 Javascript의 XMLHttpRequest 객체를 사용하여 수행됩니다. 내가보기 엔 당신이 그것을 감싸는 JS 라이브러리에 의존하고 그것을 사용하고 배우고 기본적으로 세 가지 대안이있다

2

(jQuery를 같은) 높은 수준의 서비스를 제공하는 것이 좋습니다 :

  • 은 PHP 스크립트는 모든 뒀다 JavaScript 배열로 페이지의 데이터를 처리하고 JavaScript의 모든 것을 처리합니다. 총 데이터 양이 너무 많지 않은 경우 OK 솔루션입니다.
  • 사용자가 선택하고 PHP에서 모든 것을 처리 할 때 전체 페이지를 다시로드합니다 (기존 선택 유지 포함). 이것이 작동하도록 만드는 유일한 방법입니다. 자바 스크립트가 없으면 단점이 있습니다.
  • 사용자가 선택을 할 때 AJAX을 사용합니다. 즉, JavaScript가 백그라운드에서 서버를 호출하고 특수 PHP 스크립트는 JavaScript가 페이지를 업데이트하는 데 사용하는 관련 데이터 (일반적으로 JSON 형식 사용) 만 반환합니다. 이것은 오늘날 일반적으로 이루어지는 방식입니다.
관련 문제