2012-02-10 2 views
0

나는 하나 이상의 함수를 onchange에 두는 방법을 찾고 있었고 다음과 같은 것을 발견했습니다 : onchange = "function1(); function2();". 내 문제는 여기에 나와있는 예제를 따라했지만 function1 만 작동하고 function2는 작동하지 않습니다. 그렇지 않으면 onchange = "function2(); function1();"으로 바꾸면 function2 만 작동하고 function1은 작동하지 않습니다.두 개의 함수를 하나의 함수로 호출 onchange = not working

아이디어가 있으십니까? 감사합니다. .

기능, 나는 아약스 사용 :

function1(test) 
{ 
    var kode = test.value; 
    if (!kode) return; 
    xmlhttp.open('get', '../template/get_name-opr.php?kode='+kode, true); 
    xmlhttp.onreadystatechange = function() { 
     if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)) 
     { 
      //alert(kode); 
      document.getElementById("code").innerHTML = xmlhttp.responseText; 
     } 
     return false; 
    } 
    xmlhttp.send(null); 
} 

function2(test) 
{ 
    var kode = test.value; 
    if (!kode) return; 
    xmlhttp**1**.open('get', '../template/get_name2-opr.php?kode='+kode, true); 
    xmlhttp**1**.onreadystatechange = function() { 
     if ((xmlhttp**1**.readyState == 4) && (xmlhttp**1**.status == 200)) 
     { 
      //alert(kode); 
      document.getElementById("code2").innerHTML = xmlhttp**1**.responseText; 
     } 
     return false; 
    } 
    xmlhttp**1**.send(null); 
} 

내 문제를 해결하기 위해, 나는 두 XMLHTTP 다른 만들었습니다. (xmlhttp 및 xmlhttp1).

+0

함수에 JavaScript 오류가 있습니까? –

+0

@ShashankKadne Hummm .. 내가 오류를 호출하는 경우, 나는 방화범이 끌려서 function1에 대한 (함수의 결과) "http : //localhost/template/get_name-opr.php? kode = f 중단됨 (빨간색 모든 글꼴, 응답 없음, 결과 없음), function2 "http : //localhost/template/get_name-opr.php? kode = f"(이것은 응답을 얻는 하나의 응답입니다. 결과). 그게 전부 야! 나는 혼란 스럽다 (=, =) "a. – candies

+0

오류 콘솔에 오류가 있는지 확인하십시오 (도구> 오류 콘솔) –

답변

1

이동, 그것은, 당신은 xmlhttprequest 객체를 관리하는 방식에 문제가 두 개의 동시 AJAX 요청을 같은 xmlhttprequest을 사용하고 있기 때문에 귀하의 경우, 제대로 자신의 인스턴스를 관리하는 것, 그 중 하나만 제공됩니다. 둘 중 하나가 게재 될 때까지 기다리거나 xmlhttprequest의 두 인스턴스를 만듭니다. (당신이 그들 모두에 대한 xmlhttprequest을 사용하고 있기 때문에)

xmlhttp.readystate = function() {...}은 분명히 두 번째 기능에, 그래서 그 대체되고, 그 xmlhttprequest 개체의 readystate 속성을 대체합니다. 이것이 재미있는 행동을하는 이유입니다.

+1

그것은 작동한다, Navneeth. 나는 두 개의 xmlhttp (xmlhttp와 xmlhttp1)를 만들어서 각 함수에 추가했다. 그것이 작동하는 방법입니다. Navneeth 씨 감사합니다. – candies

+0

언제나 환영합니다. –

1

function1()의 끝에서 function2()를 호출하십시오.

onchange = "function1()" 

function1(){ 
... 
function1 body; 
... 
function2() 
} 
+0

그래, 작동하지. 그러나 그 목적을 이길 것입니다. –

+0

당신의 기능을 게시하시기 바랍니다, 나는 두 가지 기능을 가진 간단한 경고() 예제를 시도하고 작동합니다. – Boris

+0

@ Boris 기능, Ajax를 사용했습니다. 내 게시물을 봐. – candies

0

두 함수 호출을 하나로 묶고 해당 함수를 호출하십시오! 내가 준 링크를 통해

function myFirstFunction() { 
    //body 
} 

function mySecondFunction() { 
    //body 
} 

//Call this guy. 
function myWrappedFunction() { 
    myFirstFunction(); 
    mySecondFunction(); 
} 
+0

브라우저에서 무슨 일이 일어나고 있는지 모르겠지만 언급 한대로 작동해야합니다. 이런 식으로 시도해도, 그렇지 않다면 ... 내가 무슨 뜻인지 알 것입니다. –

+0

나는 당신의 코드를 따른다. 아무 일도 일어나지 않는다. (T ___ T) ~ 두 함수가 작동하지 않는다. * 궁금하다. * – candies

+1

각 함수 정의의 첫 번째 줄에 경고를 두어 함수가 실제로 호출되고 있음을 확인한다. 이제 서버에서 재미있는 행동을 찾아야합니다. –