Hoe to convert a JSON array of paths to images stored on a server into a javaScript array to display them? Using AJAX

Posted by MichaelF on Stack Overflow See other posts from Stack Overflow or by MichaelF
Published on 2014-08-21T18:36:58Z Indexed on 2014/08/21 22:20 UTC
Read the original article Hit count: 179

Filed under:
|
|

I need for html file/ ajax code to take the JSON message and store the PATHS as a javaScript array. Then my buildImage function can display the first image in the array. I'm new to AJAX and believe my misunderstanding lies within the converting of the JSON to Javascript. I'm confused also about if my code creates a JSON array or object or either. I might need also to download a library to my app to understand JSON?

Below is a PHP file loading the paths of the images. I believe json ecode is converting the PHP Array in a Json message.

<?php
include("mysqlconnect.php");

$select_query = "SELECT `ImagesPath` FROM `offerstbl` ORDER by `ImagesId` DESC";
$sql = mysql_query($select_query) or die(mysql_error());   


$data = array();
while($row = mysql_fetch_array($sql,MYSQL_BOTH)){
$data[] = $row['ImagesPath'];
}

echo $images = json_encode($data);
?>

Below is the script in is going to be loaded on an Cordova app.

<!DOCTYPE html>
<html>
<head>

<link rel="stylesheet" href="css/styles.css">
<link rel="stylesheet" href="css/cascading.css">

    <script>



    function importJson(str) {
       // console.log(typeof xmlhttp.responseText);

        if (str=="") {
            document.getElementById("content").innerHTML="";
            return;

        }
        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) {

                //var images = JSON.parse(xmlhttp.responseText);

                document.getElementById("content").innerHTML=xmlhttp.responseText;


            }

        }

        xmlhttp.open("GET","http://server/content.php");
        xmlhttp.send();



    }



  function buildImage(src) {
        var img = document.createElement('img')
        img.src = src
        alert("1");
        document.getElementById('content').appendChild(img);
    }

    for (var i = 0; i < images.length; i++) {
        buildImage(images[i]);
    }



    </script>

</head>

<body onload= "importJson();">

        <div class="contents" id="content" ></div>
        <img src="img/logo.png" height="10px" width="10px" onload= "buildImage();">
</body>

© Stack Overflow or respective owner

Related posts about JavaScript

Related posts about AJAX