将PHP变量传递给AJAX调用(JS)

时间:2014-03-15 19:51:54

标签: javascript php ajax

我有一个脚本可以从当前位置旋转一些图像,图像有4个可用的旋转(位置),它们由值0,1,2,3显示。我的问题是我需要在我的AJAX调用中从数据库中获得两个变量来实现这一点。我需要rotationsrc。我的PHP目前看起来像这样;请注意我从rotationsrc取出的查询。

            <?php

            $item_number = -1; //This value is -1 in order to make the list start on 0
            $rowsize = 12;

            $itemArray = array();
            $finalArray = array();
            $results = 0;

                for ($i = 0; $i < $rowsize; $i++) {

                    $stmt = $mysqli->stmt_init();
                    $stmt->prepare('SELECT z, rotation, src, name FROM house_room1 INNER JOIN objects ON house_room1.object_id=objects.object_id WHERE house_room1.ref_id = ?'); 
                    $stmt->bind_param('i', $i
                    );
                    if ($stmt->execute()) {
                        $stmt->bind_result($z, $rotation, $src, $name);
                            while($stmt->fetch()) {

                               $results = 1;
                               $itemArray['number'] = $item_number;
                               $itemArray['name'] = $name;
                               $itemArray['ref_id'] = $z;
                               $itemArray['rotation'] = $rotation;
                               $itemArray['src'] = $src;
                               array_push($finalArray, $itemArray);

                            }
                            }
                            else {
                                echo 'Something went terribly wrong' . $mysqli->error;
                                    }
                            $stmt->close();

                            $item_number++;
                        }

                        if($results == 1){
                        aasort($finalArray,"ref_id");

                            foreach($finalArray as $arr){
                                echo '<li id="item-' . $arr['number'] . '" class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>' . $arr['name'] . ' 
                                <img class="rotate" id="img_'.$arr['number'].'" src="images/house/other/settings.jpg" onclick="rotateObject(this)" alt="'. $src.'">';
                            }
                        }

                        //create a function for sorting
                        function aasort (&$array, $key) {
                            $sorter=array();
                            $ret=array();
                            reset($array);
                            foreach ($array as $ii => $va) {
                                $sorter[$ii]=$va[$key];
                            }
                            asort($sorter);
                            foreach ($sorter as $ii => $va) {
                                $ret[$ii]=$array[$ii];
                            }
                            $array=$ret;
                        }
                        ?>

然后对此文件进行AJAX调用:

function rotateObject(e)
{
    //e is handler which contains info about the item clicked. From that we can obtain the image id.
    //since the id are of the form img_123(some number), we need to extract only the number.
    var img_id = e.id.split("_")[1];
    var xmlhttp;
    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)
        {
            var getEle = document.getElementsByClassName('item' + img_id)[0];
            var imagePath ="images/house/objects/stone_chair_1.png"; //This has to be 
            getEle.src = imagePath + xmlhttp.responseText;
        }
    }
    xmlhttp.open("POST","database/update_settings_rotate.php",true);
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlhttp.send("item_id="+encodeURIComponent(img_id));
}

然后,此代码应该imagePath等于src。然后是rotation之后,但我不知道如何从PHP文件中的数据库查询中获取该特定图像的src

有关如何传递该值的任何建议或建议?提前谢谢。

1 个答案:

答案 0 :(得分:1)

将变量从php传递到javascript的一种方法是:

<script>
    var myJavascriptVariable = <?php echo $myPhpVariable; ?>
</script>

希望这能帮到你