Hi, so practicing some web development code and the part im stuck on is when a button is clicked it changes to picture and the caption is supposed to change. However no matter what i try the caption remains the same.
The following is part of the code i have.

function showImage(imageFileName) 
    {
    // get image element
    var theImageElement = document.getElementById("cameraImage");
    // change what image is displayed
    theImageElement.src=imageFileName;      

    if(cameraImage= "Canon_20d.jpg")       
    {
    document.getElementById("imageCaption").innerHTML = "Canon 20d";
    }
    else if(cameraImage= "Fuji_s3Pro.jpg")     
    {
    document.getElementById("imageCaption").innerHTML = "Fuji S3 Pro";
    }
    else if(cameraImage= "Fuji_9500.jpg")      
    {
    document.getElementById("imageCaption").innerHTML = "Fuji 9500";
    }
    else (cameraImage= "sony_r1.jpg")      
    {
    document.getElementById("imageCaption").innerHTML = "Sony r1";
    }
}
    </script>
</head>
<body>
<div id="mainContainer">
    <div id="topSection">
        <h1 style="text-align:center; padding-top:20px">COM301 Recipe 7: Camera e-commerce site</h1>
    </div>
    <div id="contentWrapper">
        <div id="contentLeft">
            <p style="text-align:center">Useful Links</p>
            <br />
            <a href="http://www.google.com">Click here for Google</a>
            <br />
            <a href="http://www.bbc.co.uk">Click here for BBC</a>
            <br />
        </div>       
            <div id="contentRight">
        <div style="float:right; margin-top:5px; margin-right:5px">
        <img id="cameraImage"  src="blank.jpg" /> <br />
        <div style="text-align:center" id="imageCaption"> No Image</div>
</div>
            <?php
                // open a file for reading
                $fp = fopen("cameras.txt", "r");
                if ($fp != FALSE) {
                    // set up the table for structured output
                    echo "<table border='2' width='75%' rows='4'>";
                    echo "<tr><th>Make</th><th>Model</th><th>Price</th><th>Rating</th><th>Stock</th><th>Image</th></tr>";
                    // read the data line by line
                    while (($buffer = fgets($fp)) != FALSE)  {
                        // extract the component parts of the line
                        // remove whitespace
                        $buffer = trim($buffer);

                        $data = explode(',', $buffer);
                        // display the data
                        echo "<tr><td align='center'>$data[0]</td>
                        <td align='center'>$data[1]</td>
                        <td align='center'>$data[2]</td>
                        <td align='center'>$data[3]</td>
                        <td align='center'>$data[4]</td>
                        <td align='center'><input type='button' value='Image' onClick='showImage(\"$data[5]\");'/></td></tr>";  
                    }
                    // close table
                    echo "</table>";
                    // close the file
                    fclose($fp);
                }
            ?>

Anyone any idea how i can get the caption to change that appears beneath the picture. Thanks in advance.

Recommended Answers

All 2 Replies

The way you use your condition is wrong. One equal sign means "assign" but two equal sings means "comparison" of 2 values. In your case cameraImage= should be cameraImage==.

Thank you, never even realised i only had one there.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.