0

html で onChange イベントを使用して、以下の JavaScript を起動しています。

単純な alert("working"); を実行して、onChange イベントが JavaScript に到達していることを確認しました。そしてIEはアラートを発しましたが、私が望む実際のコードは機能していないようです。(FF、Chrome、Safari、iPad、および Android で機能します)。

この関数は、onchange を介して渡された値を取得し、それを変数として php ファイルに送信します。php ファイルは、取得した変数を取得して DB に挿入します。他のすべてのブラウザーで動作するため、php の部分は問題ではないと思います。誰にも洞察力がありますか?

コード:

function showUser(str)
{
if (str=="")
  {
  document.getElementById("txtHint").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("txtHint").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","http://testest.com/itgoeshere.php?q="+str,true);
xmlhttp.send();
}

IEの場合はそうしなければならないので、各タグに値属性を明示的に追加する必要があることを認識していますが、これを行ったと思います...

select ステートメントがどのように見えるかの例を次に示します...

<select name="date" onChange="showUser(this.value)">
<option value="">---</option>
<option value="1">Past hour</option>
<option value="2">Past week</option>
<option value="3">Past month</option>
<option value="4">Past year</option>
</select>
4

1 に答える 1

1

うーん..テスト用にjQuery Ajax Functionを試すことができます(jQueryはIE6をサポートする必要があります)。

おそらく、説明されている回避策(Internet Explorer と AJAX の修正) で問題を解決できます。

jQuery Ajax 呼び出し:

$.ajax({
  type: "GET",
  url: "getitinhere.php",
  async: true,          
  data: { "str": str },
  success: function(data) {
    alert('Success: '+data);
  },
  error: function(jqXHR, textStatus, errorThrown){  
    alert('Something went wrong' +textStatus);          
  }
}); 

このスニペットがお役に立てば幸いです ;)

于 2012-07-13T18:21:40.967 に答える