2013-04-24 4 views
1

하나의 드롭 다운 메뉴에서 2 가지 기능을 호출하고 있습니다. 내가 일할 수는 있지만 둘 다 할 수는없는 것 같습니다. 이것을 분류하는 도움을 찾고 있습니다. 여기에 코드가 있습니다. 고마워요.onchange 2 functions on 1 dropdown

<script type="text/javascript"> 
function getCredit(str) 
{ 
if (str=="") 
    { 
    document.getElementById("credit").innerHTML=""; 
return; 
    } 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    document.getElementById("credit").innerHTML=xmlhttp.responseText; 
    } 
    } 
xmlhttp.open("GET","getcredit.php?id="+str,true); 
xmlhttp.send(); 
} 
window.onload = function() { 
document.getElementsByName('company')[0].onchange(); 
} 
</script> 

기능 1 그리고 여기가

<script type="text/javascript"> 
function getTerms(str) 
{ 
if (str=="") 
    { 
    document.getElementById("terms").innerHTML=""; 
return; 
    } 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    document.getElementById("terms").innerHTML=xmlhttp.responseText; 
    } 
    } 
xmlhttp.open("GET","customertermsdropdownquery.php?id="+str,true); 
xmlhttp.send(); 
} 
window.onload = function() { 
document.getElementsByName('company')[0].onchange(); 

} 

</script> 

기능 2.이며, 여기를 호출하는 형태의 드롭 다운입니다.

<td><select name="company" onchange="getTerms(this.value);getCredit(this.value);"> 
<?php while($row = mysql_fetch_array($result)) { 
    echo "<option value=\"".$row['company']."\">".$row['company']." (".$row['first']." ".$row['last'].")</option>"; } ?></select></td> 

저는 div를 사용하여 PHP를 표시합니다.

<div id="terms"></div> 
and 
<div id="credit"></div> 

둘 중 하나만 작동하도록 설정할 수 있습니다. 당신의 도움을 주셔서 감사합니다.

+0

왜 이들을 하나의 함수로 묶은 다음 호출해야합니까? –

+0

글쎄, 나는 newb 그래서 나는 어떻게 해야할지 모르겠다. 서로 분리하면 내 코드를 더 잘 이해할 수 있습니다. 그러나 이것이 작동하도록 할 수 있다면 나는 반대하지 않는다. – Tom

답변

2

분리하여 보관하는 것이 완전히 이해할 수 있습니다. 이런 식으로 새로운 함수를 만드는 것은 어떨까요?

function getTermsAndCredits(value) { 
    getTerms(value); 
    getCredits(value); 
} 

그런 다음 onchange를 이벤트에 다음이

<td><select name="company" onchange="getTermsAndCredits(this.value);"> 

과 같이 호출 당신에게 더 나은 아이디어를 제공해야 fiddle이다. 현재 코드에서와 같이 onload 함수를 호출해야한다고 생각하지 않습니다.

+0

나는 각각의 가치에 무엇을 사용해야하는지 혼란 스럽다. – Tom

+0

좋아, 나는 거기에 쓴 것을 시도했다. 그래도 getTerms는 작동하지 않지만 getCredits는 동일한 문제를 겪고 있습니다. 경우에 따라 (항상은 아님) getCredits는 getTerms가 있어야하는 위치를 표시합니다. – Tom

+0

나는 그것이 내 윈도우 onload 두 함수에있는 것과 관련이 있다고 생각한다. 하나를 제거하면 작동하지만 다른 하나는 작동하지 않습니다. – Tom