0

私は過去数日間、いくつかのコードと格闘してきましたが、進歩はありませんでした。私は助けが必要です。これが私がやろうとしていることです:

  • 2つのドロップダウンリストの最初のリストに手動で入力します
  • 最初の値の選択された値を取得し、それを使用してデータベースにクエリを実行し、2番目のドロップダウンにクエリの結果を入力します。
  • ボタンを使用して別の関数をトリガーし、PDFを生成します。

私は自分のサイトにこのコードを持っていて、働いています。欠点は、FFとChromeでのみ機能することです。IEにドロップダウンリストを入力できません。テストのために、IEが2番目のドロップダウンリストにデータを入力するかどうかを確認するために、コードを実質的に何も削除しましたが、実際には表示しません。以下は、テストページのコードです。

test.htm:

<html><head>
<script type="text/javascript">
function showCMB2(str)
{
if (str=="")
{
  document.getElementById("cmb2").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("cmb2").innerHTML=xmlhttp.responseText;
  }
}

xmlhttp.open("GET","test.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>

<form>
<select name="cmb1" id="cmb1">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</form>
<br />

<input type="button" value="Retrieve Data"   
 OnClick="showCMB2(cmb1.options[cmb1.selectedIndex].value)"> 
<br><br><br>
<span name="cmb2" id="cmb2"></span>
</body>
</html> 

test.php:

<?php
echo '<select name="cmb2" id="cmb2">';
echo '<option value="cmb2">This is test</option>';
echo '</select>';
?> 

私が言ったように、これはFFとChromeでうまく機能しますが、IEでは機能しません。IDがcmb2のtest.htmのスパンを作成してみましたが、動作に変化はありませんでした。誰かが何か洞察を提供できますか?これはとても簡単なようです。

4

2 に答える 2

0

innerHTMLの設定は、IE8では正しく機能しません。代わりに、jquery関数$('#elementId')。html('....');を使用してください。

value =属性が必要であることに注意してください。そうでない場合、IEがオプション値を別のjavascript関数に渡すと、nullが渡されます。

于 2013-01-25T11:30:19.767 に答える
0

サーバーからの応答は、span 要素に割り当てたものと同じ ID を持つ要素を追加しようとしています。ID は一意である必要があります。

于 2012-07-11T14:19:42.367 に答える