xmlhttp.open(url)和使用AJAX调用php函数不起作用?

Just beginner in php, I want to call php method using AJAX. I tried every thing but don't know what error is. Not getting any response from object xmlhttp.

Heres my java script code :

function loadData(){
    var mID=ddItems;
    var method=2;
    var xmlhttp;
    if (window.XMLHttpRequest) {    
        xmlhttp = new XMLHttpRequest();
    }
    if (xmlhttp.readyState == 4 || xmlhttp.readyState == 0) {
        xmlhttp.open("GET", "../code/GetItemsInDD.class.php?id=" + mID + "&method=" + method, true); **// is this statement correct**

    xmlhttp.onreadystatechange = function(){
        if (xmlhttp.readyState==4 && xmlhttp.status==200) **//conditin is false,**
        {
            document.getElementById("ddItems").innerHTML=xmlhttp.responseText; 
        }
     }
    xmlhttp.send();
    }
}

My js file is on "projectname/javascript/script.js" and my php file is in "projectname/code/GetItemsInDD.class.php" dir.

Why don't you use jQuery for making AJAX requests? Its as simple as this, include jQuery in your page

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>

and JS code,

$.ajax({
  type: 'GET',
  url: '../code/GetItemsInDD.class.php?id=" + mID + "&method=" + method',
  success: function (data) {
     document.getElementById("ddItems").innerHTML = data; 
  }
});

This way, you don't need to check for the readyState and status thing

jQuery follows object oriented approach for declaring XMLHttpRequest objects, so you won't have to worry about creating multiple objects for making more than one AJAX requests.

I have made 2 desired changes to your code, try running it now. Make sure the URL is correct.

function loadData()
{
var mID=ddItems;

var method=2;

var xmlhttp;

if (window.XMLHttpRequest) {    
    xmlhttp = new XMLHttpRequest();
}

else    //For some versions of IE
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");


xmlhttp.onreadystatechange = function()
{
    if (xmlhttp.readyState==4 && xmlhttp.status==200) **//conditin is false,**
    {
        document.getElementById("ddItems").innerHTML=xmlhttp.responseText; 
    }
 }

xmlhttp.open("GET", "../code/GetItemsInDD.class.php?id=" + mID + "&method=" + method, true); **// is this statement correct**
xmlhttp.send();
}

}

Change 1 : You may be running the code in an older version of IE, where ActiveXObject is used.

Change 2 : The open() method should not be called if the readyState changes ( as you have written it within the IF block), readyState changes only after the ajax call is initialized by the open() method and then send by the send() method.

     function loadData(){
           var xmlhttp;
           var mID=ddItems;
           var method=2;
              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("ddItems").innerHTML=xmlhttp.responseText;
              }
           }
           xmlhttp.open("GET", "../code/GetItemsInDD.class.php?id=" + mID + "&method=" + method, true);
          xmlhttp.send();
          }