ajax PHP MySQL查询

I need help with an ajax call, but I'm a newbie with ajax and I'm not sure as to how to do it.

I have the following PHP code (phonecall.php):

<?php

$con = mysqli_connect('localhost','root','root','mydb');
if (!$con) {
    die('Could not connect: ' . mysqli_error($con));
}

mysqli_select_db($con,"mydb");
$sql="SELECT * FROM incoming_calls";
$result = mysqli_query($con,$sql);

while($row = mysqli_fetch_array($result)) {
    $callArray[] = array('phonenumber' => $row['phone_number'], 'id' => $row['phone_login_id']);
        print "<div id=\"call\">";
        print_r($callArray);
        print "</div>"
}

mysqli_close($con);
?>

I want to make a page update in real time automatically anytime something new is posted to the table.

Here is my non-working page:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="utf-8"> 
<title>Phone calls</title> 
</head>
<body>
<script language="javascript" type="text/javascript">
<!-- 
//Browser Support Code
function ajaxFunction() {
  var ajaxRequest;

  try {
      // Opera 8.0+, Firefox, Safari
      ajaxRequest = new XMLHttpRequest();
  } catch (e) {
      // Internet Explorer Browsers
      try {
        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
          try {
            ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
          } catch (e) {
            // Something went wrong
            alert("Your browser broke!");
            return false;
          }
      }
  }

  ajaxRequest.onreadystatechange = function(){
  var ajaxDisplay = document.getElementById('call');
  ajaxDisplay.innerHTML = ajaxRequest.responseText;
}

setInterval(function() { //Broken
    ajaxRequest.open();  //Not sure what to put here.
}, 1000);
}
//-->
</script>
</body>
</html>

Your ajaxRequest.open() method takes 3 parameters, as per the XMLHttpRequest specification:

  • The method of the request (POST, GET, etc)
  • The file you're sending your request to
  • Whether or not the request will be asyncronous.

So:

ajaxRequest().open('GET','yourfile.php',true);

Would build an asynchronous GET request to yourfile.php.

You're also missing the ajaxRequest().send(), which would actually send your request to the server.

There's plenty to know about this so I suggest googling it, since you seem to be lacking on the basics.