2012-02-10 22 views
0

私はonchangeに複数の関数を配置する方法を探していましたが、これは例えばonchange = "function1(); function2();"のようなものでした。 私の問題はここにありますが、そのような例はありますが、function1だけが動作しており、function2は動作していません。それ以外の場合はonchange = "function2(); function1();"にすると、function2のみが動作していますが、function1は動作していません。1つで2つの関数を呼び出すonchange = not working

どのようなアイデアですか?おかげさまで

機能、私はAjaxが使用:

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); 
} 

私の問題を解決するために、私は2つのXMLHTTP異なる作成しました。 (xmlhttpとxmlhttp1)。

+0

この関数のJavaScriptエラーはありますか? –

+0

@ShashankKadne Hummm ..エラーを呼び出すかどうかわかりませんが、私は火かき棒の中にあり、function1のために(関数の結果) "http://localhost/template/get_name-opr.php?kode = f aborted(すべてのフォントが赤で、レスポンスがない、結果がない)、 function2 "http://localhost/template/get_name-opr.php?kode = f"(これはget応答です。結果は)それだよ! 私は混乱している(=、=) "a。 – candies

+0

エラーコンソールにエラーがあるかどうかを確認します(ツール>エラーコンソール) –

答えて

1

ゴーあなたは2つの同時AJAX要求について同じxmlhttprequestを使用しているので、あなたの場合には、適切にそのインスタンスを管理し、あなたがxmlhttprequestオブジェクトを管理する方法に問題があるようです、そのうちの1人だけがサービスを受けるようになっています。そのうちの1人がサービスを受けるのを待つか、xmlhttprequestの2つのインスタンスを作成してください。

文で明らかにxmlhttp.readystate = function() {...}は(あなたがそれらの両方のためのxmlhttprequestを使用しているため)ので、あなたの第二の機能上、それが交換され、そのxmlhttprequestオブジェクトのreadystateプロパティを置き換えます。これがあなたが面白い振る舞いを見ている理由です。

+1

それはうまくいく、Navneeth氏。私は2つのxmlhttp(xmlhttpとxmlhttp1)を作成して各機能に追加しました。それがどのように機能するのですか? Navneethさんありがとうございます。 – candies

+0

いつもようこそ。 –

1

function1()の最後にfunction2()を呼び出します。

onchange = "function1()" 

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

うん、それは動作します。しかし、それは目的を破るでしょう。 –

+0

私はあなたの関数を投稿してください、私は2つの関数で簡単な警告()の例を試して、それは動作します。 – Boris

+0

@Boris関数、私はAjaxを使用しました。私のポストを見てください。 – candies

0

2つの関数呼び出しを1つにまとめ、その関数を呼び出します。私が与えたリンクを介して

function myFirstFunction() { 
    //body 
} 

function mySecondFunction() { 
    //body 
} 

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

私はあなたのブラウザで何が起こっているのか分からない、それはあなたが言及したように動作するはずです。この方法でやってみてください。まだそれができなければ...私が何を意味するか知っています。 –

+0

私はあなたのコードに従っていますが、何も起こりません〜(T ___ T)〜両方の関数が動作していません* – candies

+1

各関数定義の最初の行にアラートを入れて、関数が実際に呼び出されていることを確認してください。今度はあなたのサーバーで面白い振る舞いを探すべきです。 –

関連する問題