-1

私は初心者で、このスクリプトを機能させようとしています。IE を除くすべてのブラウザで完全に動作します。ここでスタックオーバーフローでほとんどのソリューションを試しましたが、どれもうまくいきません。私はどこかで見つけられない子供っぽい間違いをしています。あなたの助けを求めるでしょう。

また、appendchild を使用する DOM オブジェクト形式が 100% 正しく機能しない可能性があることをお知らせするために、このスクリプトは基本的に 1 から 10 までの数字を示すドロップダウンから値を渡し、それらの数字に基づいて対応するチャートをプルアップするためです。したがって、チャート 1 を表示している場合は、ドロップダウンを選択してチャート 3 も表示できます。しかし、appendchild プロパティを使用すると、1 から 10 を選択して 1 つのグラフしか表示できず、ページを更新しない限り機能しません。したがって、deletechild を使用しない限り、機能しないと思います。したがって、私はそのセクションをコメントアウトし、innerhtml の古き良き方法を使用しています。

これは私のJS関数です。

function showUser(str) {

debugger;

var xmlhttp = GetXmlHttpObject("Browser does not support HTTP Request");

if (str=="") {
  document.getElementById("pairname").innerHTML="";
  return;
  } 

  /* <-- I HAVE ALREADY COMMENTED THIS OUT & am using a more robust function for this.
  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("pairname").innerHTML=xmlhttp.responseText;

    //AS YOU CAN SEE THE ALTERNATIVE SOLUTION OF USING DOM OBJECTS HAS BEEN COMMENTED OUT.. SINCE THIS IS ALSO NOT WORKING IN IE FOR ME.
    //var wrappingElement = document.createElement("div");
    //wrappingElement.innerHTML = xmlhttp.responseText;
    //document.getElementById('pairname').appendChild(wrappingElement);
    }
  }
xmlhttp.open("GET","getimgdetails.php?q="+str,true);
xmlhttp.send();
}

function GetXmlHttpObject(errorMessage) {
    var r = false;
    try { r = new XMLHttpRequest(); }// Opera 8.0+, Firefox, Safari
    catch(e) {
        // Internet Explorer Browsers
        try { r = new ActiveXObject("Msxml2.XMLHTTP"); }// older IE
        catch(e) {
            try { r = new ActiveXObject("Microsoft.XMLHTTP"); }// IE 5+
            catch(e) {// AJAX not possible
                if(errorMessage) { alert(errorMessage); }
            }
        }
    }
    return r;
}

そして、これは私がそれを示している場所です

<div id="pairname"><b>Charts will  be shown here.</b></div>*

そして、これは情報を受信して​​送り返すスクリプトです。SO 基本的には、1 から 10 までの数字ごとに 5 つのチャートを表示します。

$q=$_GET["q"];

 Echo "<img src=mqluploads/".$q."15.gif?".time()."></img>";
 Echo "<br>";
 Echo "---------------------------------------------------------";
 Echo "<br>";   

 Echo "<img src=mqluploads/".$q."60.gif?".time()."></img>";
 Echo "<br>";
 Echo "---------------------------------------------------------";
 Echo "<br>";

 Echo "<img src=mqluploads/".$q."240.gif?".time()."></img>";
 Echo "<br>";
 Echo "---------------------------------------------------------";
 Echo "<br>";

 Echo "<img src=mqluploads/".$q."1440.gif?".time()."></img>";
 Echo "<br>";
 Echo "---------------------------------------------------------";
 Echo "<br>";

 Echo "<img src=mqluploads/".$q."10080.gif?".time()."></img>";
 Echo "<br>";
 Echo "---------------------------------------------------------";
 Echo "<br>";

 Echo "<img src=mqluploads/".$q."43200.gif?".time()."></img>";
 Echo "<br>";
 Echo "---------------------------------------------------------";
 Echo "<br>";
?>

ご協力いただき、ここまでお読みいただき、誠にありがとうございました。私は過去1週間これに苦労してきましたが、ついに助けを求めることにしました. アドバイスお待ちしております。

4

1 に答える 1

1

PHPスクリプトが何らかのデータを返していることを確認しましたか。getimgdetails.php?q=str (str を正しいパラメータに置き換えます) にブラウザで直接アクセスしてみてください。

また、次の行の前にアラート (xmlhttp.responseText) を配置します。

document.getElementById("ペア名").innerHTML=xmlhttp.responseText;

これはデバッグに役立ちます。

于 2013-06-26T03:46:26.830 に答える