I have an ajax script, which I kinda understand, but still need some extra help.
$('.images').click(function(){
var imageId = $(this).attr('id');
alert(imageName);
$.ajax({
type: "get",
url: "imageData.php",
dataType: "json",
data: {getImageId: imageId},
error: function() {
alert("error");
},
success: function(data){
alert(imageId);
$("#images_"+imageId).html(data);
}
});
//$('#images_'+imageId).toggle();
});
I have that code, it goes to this imageData.php file
<?php
if(isset($_GET)){
$images = "";
$path = 'img/';
$imageId = $_GET['getImageId'];
$sql = mysql_query("SELECT * FROM images WHERE iID = '".$imageId."'");
while($row = mysql_fetch_array($sql)){
$images .= $path.$row['images'];
}
$json = json_encode($images);
?>
<img src='<?php echo $json;?>'/>
<?php
}
?>
Why does it output error when I try to echo a string from $images, but it outputs correctly when I do echo $imageId;? I’m trying to output something from mysql, but not trying to output just the id.
Need help please, thank you
You don’t need use
json_encodehere, there is not data that needs to be in JSON format. There is also no reason to loop over the result set, if the query only returns one image.Try this:
If the
iIDis actually an integer, you need to omit the single quotes in the query.You also have to change the
dataTypefromjsontohtml, as you are returning an image tag (HTML) and not JSON:Another option is to return only text (the link) and create the images on the client side:
And in JavaScript: