I am trying to make use of the PHP/AJAX/MySQL example provided on W3Schools here: http://www.w3schools.com/php/php_ajax_database.asp to try and read some information from a MySQL database into a page that I am working on.
The page loads normally, although it doesn't return any content from the PHP page / database.
Firebug in firefox doesn't give me any errors, although it shows the GET request having an empty response, and Chrome gives me the following error message:
"XMLHttpRequest cannot load http://www.mydomain.com/somepage.php...=2005&subgeo=1. Origin http://www.mydomain.com is not allowed by Access-Control-Allow-Origin."
I did a bit of research on google to try and figure out what this could be, and it appears that the error generally shows up when trying to access a file on another domain, yet my JS, HTML, PHP and MySQL database are all on the same domain and same physical server.
If I just type the link to the PHP file in my browser manually add in the GET parameters then it displays the result as expected. Because of this I am assuming the problem is with my javascript but I have posted the PHP code anyway.
Here is the javascript I am using:
And here is the PHP code that runs the query:PHP Code:if(FAMTYPE != "" && YEAR != "" && OECD != "")
{
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("graph2").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","http://mydomain.com/somepage.php?fam=" + FAMTYPE + "&year=" + YEAR + "&subgeo=99",true);
xmlhttp.send();
}
PHP Code:<?php
$year = $_GET['year'];
$famTypeStr = $_GET['fam'];
$subgeoStr = $_GET['subgeo'];
$con = mysql_connect(/*DB INFO HERE*/);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db($dbName);
mysql_query("SET NAMES 'utf8' COLLATE 'utf8_general_ci'");
$sql="SELECT * FROM `householdinfo_" . $year . "` WHERE geography ='99' && subgeography ='" . $subgeoStr. "' && familytype LIKE'" . $famTypeStr . "%'";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
echo "Geography: " . $row['geography'] . "<br />";
echo "Subgeography: " . $row['subgeography'] . "<br />";
echo "Family Type: " . $row['familytype'] . "<br />";
echo "Family Count: " . $row['familycount'] . "<br />";
echo "Median Income: ". $row['medianincome'] . "<br />";
}
mysql_close($con);
?>Thanks for all your help in advance.


Thanks for all your help in advance.
Reply With Quote
Bookmarks