1

1 つのドロップダウン メニューから呼び出したい 2 つの関数があります。1つしか動作させられないようですが、両方は動作しません。これを整理するための助けを探しています。これがコードです、ありがとう。

機能 1

<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>

そして、ここに関数 2 があります。

<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>

そして、これがそれらを呼び出すフォーム ドロップダウンです。

<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>

一緒にではなく、どちらかを単独で動作させることができます。ご協力いただきありがとうございます。

4

1 に答える 1

2

それらを分離しておきたいことは完全に理解できます。このような新しい関数を作成するのはどうですか。

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

次に、 onchange イベントで次のように呼び出します

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

これは、より良いアイデアを提供するフィドルです。現在コードにあるように、onload 関数を呼び出す必要はないと思います。

于 2013-04-24T18:40:21.097 に答える