2014-10-18 4 views
-4

사용자 데이터를 가져 오는 html로 양식을 만들었습니다. 그런 다음 자바 스크립트를 사용하여 해당 데이터를 배열에 저장합니다. 다음은 내 코드입니다 :자바 스크립트 배열 푸시 기능

function test(){ 
    var fName = document.getElementById('myName').value; 

     var test = ["dataOne"]; 
     test.push("dataTwo"); 
     test.push("dataThree"); 

     test.push(fName); 
     } 

문제 : DataOne, dataTwo 및 dataThree 배열 0,1,2에 다음 인덱스에서 개최된다. 이제 폼을 통해 사용자가 입력 한 데이터가 "fName"이라는 변수에 저장되고 그 변수가 배열로 푸시됩니다.

변수를 배열로 밀어 넣으면 배열의 인덱스 3에 저장됩니다. 사용자가 일부 데이터를 입력 할 때마다 데이터는 인덱스 3에 저장됩니다. 다음 데이터는 인덱스 4와 인덱스 5에 저장되기를 원합니다. 모든 사용자 제출은 새 색인에 있어야합니다. 사용자가 양식을 제출 현재 경우 배열은 다음과 같이 표시됩니다

사용자 1 :

:

[dataOne, dataTwo, dataThree, USER1 입력]

을 제 2의 사용자가 양식을 제출하는 경우

사용자 2 :

[dataOne, dataTwo, dataThree, USER2 입력]

USER1 입력은 사용자 입력에 의해 작성된 2 이상이었다.

누구든지 도움을 줄 수 있습니다. 미리 감사드립니다.

+0

제목이 실제 질문과 관련이 없습니다. – jfriend00

+0

테스트 기능을 언제 호출합니까? –

+0

당신은 이미이 질문을했습니다 ... 그리고이 버전은 첫 번째 것보다 "양식 제출"이 의미하는 것에 대한 정보가 훨씬 적습니다. – Quentin

답변

1

문제는 함수를 호출 할 때마다 배열을 다시 선언하거나 덮어 쓰는 것이 문제입니다. 다음과 같이 시도하십시오 :

var test = ["dataOne"]; //\ 
test.push("dataTwo"); //>which equals var test = ["dataOne", "dataTwo", "dataThree"] 
test.push("dataThree"); /// 

function func(){ 
    var fName = document.getElementById('myName').value; 
    test.push(fName); 
} 

그런 식으로 모든 새 함수 호출은 다른 문자열을 배열에 푸시합니다.

또한 모든 것을 test (배열과 함수)이라고 부를 수 없기 때문에 함수 이름을 변경해야한다는 점에 유의하십시오.