I have a PHP file which is called upon through AJAX.
The PHP file “fetch.php” searches the database with the given JS variables, an x and y co-ordinate, through GET, and brings back the user id associated with those co-ordinates.
So I then get that users information…
I’m then trying to bring those PHP variables back into the AJAX call on the original page and display the results… here’s what I’ve got so far…
Javascript/jQuery
<script type="text/javascript">
jQuery.fn.elementlocation = function() {
var curleft = 0;
var curtop = 0;
var obj = this;
do {
curleft += obj.attr('offsetLeft');
curtop += obj.attr('offsetTop');
obj = obj.offsetParent();
} while ( obj.attr('tagName') != 'BODY' );
return ( {x:curleft, y:curtop} );
};
$(document).ready( function() {
$("#gdimage").mousemove( function( eventObj ) {
var location = $("#gdimage").elementlocation();
var x = eventObj.pageX - location.x;
var x_org = eventObj.pageX - location.x;
var y = eventObj.pageY - location.y;
var y_org = eventObj.pageY - location.y;
x = x / 5;
y = y / 5;
x = (Math.floor( x ) + 1);
y = (Math.floor( y ) + 1);
if (y > 1) {
block = (y * 200) - 200;
block = block + x;
} else {
block = x;
}
$("#block").text( block );
$("#x_coords").text( x );
$("#y_coords").text( y );
if (x == x_org + 5 || x == x_org - 5 || y == y_org + 5 || x == y_org - 5) {
$.ajax({
type: "GET",
url: "fetch.php",
data: "x=" + x + "&y=" + y + "",
dataType: "json",
async: false,
success: function(data) {
$("#user_name_area").html(data.username);
$("#user_online_area").html(data.online);
}
});
}
});
});
</script>
The displayed PHP file with the Javascript/jQuery:
<div class="tip_trigger" style="cursor: pointer;">
<img src="gd_image.php" width="1000" height="1000" id="gdimage" />
<div id="hover" class="tip" style="text-align: left;">
Block No. <span id="block"></span><br />
X Co-ords: <span id="x_coords"></span><br />
Y Co-ords: <span id="y_coords"></span><br />
User: <span id="user_name_area"></span>
Online: <span id="user_online_area"></span>
</div>
</div>
PHP file (fetch.php) called through AJAX
<?
require('connect.php');
$mouse_x = $_GET['x'];
$mouse_y = $_GET['y'];
$grid_search = mysql_query("SELECT * FROM project WHERE project_x_cood = '$mouse_x' AND project_y_cood = '$mouse_y'") or die(mysql_error());
$user_exists = mysql_num_rows($grid_search);
if ($user_exists == 1) {
$row_grid_search = mysql_fetch_array($grid_search);
$user_id = $row_grid_search['project_user_id'];
$get_user = mysql_query("SELECT * FROM users WHERE user_id = '$user_id'") or die(mysql_error());
$row_get_user = mysql_fetch_array($get_user);
$user_name = $row_get_user['user_name'];
$user_online = $row_get_user['user_online'];
echo "{ username: $user_name }";
echo "{ online: $user_online }";
} else {
echo "{ username: }";
echo "{ online: }";
}
?>
Everything is working fine, except one thing, I’ve check the php file and it does echo a username so I know there is a result being sent back from my query. It’s just I can’t seem to get the user_name_area and user_online_area to display the results from the fetch.php file.
Am I parsing them correctly, do I have to assign them to a variable or is what I’m trying to do impossible?
I’ve never attempted this whole json thing before and I seem to be having some problems with it, so if anyone could give me a hand cause I’ve been trying for the past couple nights to get it to work and just… can’t!!