2016-09-19 3 views
1

초보자입니다. 나는 그것으로 Phonegap 애플 리케이션에 현재 일하고있다. 내가 가입 프로세스에 대한 4 HTML 페이지를 가지고 사이에 붙어있어 모든 HTML 페이지 입력 값을 단일 js 파일에 마지막으로 모든 데이터가 서버 URL에 게시해야하며 또한 많은 사이트에서 읽어야합니다 그들은 사이트 속도를 높이기 위해 사이트의 모든 페이지에 동일한 js 파일을 사용하도록 권장했습니다. 그래서 해결해야 할 두 가지 문제가 있습니다. 많은 사이트에서 검색했지만 정확한 답변을 찾을 수 없습니다.여러 HTML 페이지에 대한 자바 스크립트 파일

  1. 하나의 js 파일에 4 개의 HTML 페이지의 입력 값을 전달해야합니다.

  2. 로그인 및 가입에 대해 하나의 js 파일을 만들어야합니다. JS 페이지

내 코드는 다음과 같습니다

첫 번째 페이지 :

HTML 페이지 나 각 페이지에 대한 JS 함수를 호출하고에서

var firstName=""; 
var lastName=""; 
var email=""; 
var password=""; 
var retypePassword=""; 
var gender=""; 
var DOB=""; 
var institute=""; 
var course=""; 
var branch=""; 
var semester=""; 
var teachers = []; 

function signUpStarting() { 
    alert(firstName + " "+lastName+" "+email+" "+password+" "+retypePassword+" "+gender+" "+DOB+" "+institute+" "+course+" "+branch+" "+semester+" "+teachers.join(",")); 

} 

function signUp1() { 
    firstName[0] = $("#first_name").val().trim(); 
    firstName[1] = $("#last_name").val().trim(); 
    email = $("#email").val().trim(); 
    password = $("#password").val(); 
    retypePassword = $("#retype_password").val(); 
    alert(firstName + " "+lastName+" "+email+" "+password+" "+retypePassword); 
} 

function signUp2() { 
    gender = $('#gender').find(":selected").text(); 
    DOB = $('#DOB').val(); 
    alert(gender+" "+DOB); 
} 

function signUp3() { 
    institute = $('#institute').find(":selected").text(); 
    course = $('#course').find(":selected").text(); 
    branch = $('#branch').find(":selected").text(); 
    semester = $('#semester').find(":selected").text(); 
    alert(institute+" "+course+" "+branch+" "+semester); 
} 

function signUp4() { 
    $(":checkbox").map(function() { 
      if($(this).is(':checked')){ 
        teachers.push($('label[for="' + this.id + '"]').text()); 
      } 
    }); 
    signUpStarting(); 
} 

<a onclick="signUp1()" href="register-two.html">continue</a> 
두 번째 페이지3210

:

번째 페이지
<a onclick="signUp2()" href="register-three.html">continue</a> 

: 다음 I 하나의 페이지에서 각각의 거래에

<a onclick="signUp4()">continue</a> 

: 제 페이지

<a onclick="signUp3()" href="register-four.html">continue</a> 

JS에서 경고를 설정하고, 내가 accelat와 함께 경고 받고있다. e 값도. 그러나 html의 네 번째 페이지에서 계속 버튼을 클릭 한 후 코드를 주요 가입 기능으로 전송했습니다. 나는 signUpStarting() 함수에서 경고를 보려고했으나, 네 번째 페이지 값에 대한 응답을 얻었고 다른 변수는 변수가 null이므로 아무것도 표시하지 않습니다.

localStorage 또는 쿠키를 사용하지 않고 항상 모든 데이터를 server.And에 게시하지 않고도 변수 값을 저장하는 방법을 알지 못합니다. 내 사이트의 모든 HTML 페이지를 단일 코드로 코딩해야한다면 쉽게 알 수 있습니다. JS 파일.

도와주세요!

+0

페이지간에 갈 경우이 서버 쪽을 수행합니다. 그렇지 않으면 아약스 사용에서 다음 단계를로드합니다. – Pete

+0

아약스 변수는 다른 페이지로 전송할 때 삭제되거나 변경되지 않습니다? – Swr7der

+0

아약스를 사용하면 페이지를 실제로 변경하지 않습니다. 아약스는 현재 페이지에서 벗어나지 않고 새 내용을로드합니다. 이것의 읽으십시오 : http://stackoverflow.com/questions/1510011/how-does-ajax-work – Pete

답변

1

localStorage 또는 쿠키를 사용하지 않고 항상 모든 변수 값을 저장하고 모든 데이터를 서버에 게시하는 방법을 알지 못합니다. 그리고 내 사이트의 모든 html 페이지를 코딩하는 것이 더 쉬운 방법이라고 생각합니다. 단일 JS 파일.

정확하게 맞습니다. 웹 브라우저 환경에서 페이지로드 사이의 데이터는 메모리에 저장할 수 없습니다. 브라우저가 페이지에서 새 페이지로 이동할 때 모든 JavaScript 변수가 자연스럽게 파괴되기 때문입니다 (두 페이지에서 동일한 JavaScript를 사용하더라도). 따라서 localStorage, 쿠키 또는 POST 또는 GET을 통해 서버에 더 많은 영속성을 가진 어딘가에 저장해야합니다.

4 개의 다른 html 페이지를 폐기하고 단순히 사용자가 데이터를 채우면 동적으로 변경되는 하나의 html 페이지를 사용하는 것이 좋습니다. 이렇게하면 서버에서 서버에 POST 할 준비가되기 전에 브라우저가 데이터를 제거하지 않습니다.

+0

Yup! 같은 파일에 html 파일을 병합하는 것이 좋지만 문제는 모든 HTML 페이지에 간단한 js 파일을 사용할 수없는 것입니까? 그렇다면 어떻게? – Swr7der

+0

당신이 무슨 뜻인지 모르겠지만 다른 HTML 페이지간에 상태를 공유하는 유일한 방법은 페이지를 초과하는 저장소 (쿠키, 세션 데이터 또는 서버)에 값을 저장하는 것입니다. 각 HTML 페이지에서 동일한 JS 파일을 사용하는 경우 이미 수행중인 작업이 아닙니까? ''와 같은 것? – user2005218

+0

"여러 페이지에 대해 동일한 js 파일을 사용하는 방법"은 여러 파일에 대해 다른 기능을 사용하고 싶었고이 파일 (4 html 페이지)에서 충돌이 발생하여 다른 방법이있을 수 있다고 생각했습니다. 동일한 파일을 반복해서 호출 한 후에도 변수는 변경되지 않습니다. 그것이 문제이다. 거기에 전문적인 방법이 있습니까? $ (document) .ready (function()) 또는 다른 함수 사용하기 ?? 아니면 내가 할 수있는 아약스 변수를 사용할 수 있습니까? 나는 서버에 데이터를 몇 번이고 POST하고 싶지 않기 때문에. – Swr7der

관련 문제