使用jquery将js变量传递给php

时间:2012-11-14 01:51:21

标签: php jquery

我正在尝试将一个简单的javascript变量发布到php文件中。

keyinput.php中的Jquery位:

<script type="text/javascript">

var imgArray = [<?php echo implode(',', getImages($cat, $site)) ?>];
$(document).ready(function() {      

    var img = document.getElementById("showimg");
    img.src = imgArray[<?php echo $imgid ?>];
    var imgIndex = <?php echo $imgid ?>;

    $(document).keydown(function (e) {
        var key = e.which;
        int rightarrow = 39;
        int leftarrow = 37;
        int random = 82;

        if (key != rightarrow && key != leftarrow && key != random) {
            return;
        }
        else {
            //next image: right arrow
            if (key == rightarrow) 
            {
                imgIndex++;
                if (imgIndex > imgArray.length-1) 
                {
                    imgIndex = 0;
                }
                img.src = imgArray[imgIndex];
            }
            //last image: left arrow
            if (key == leftarrow) 
            {
                if (imgIndex == 0) 
                {
                    imgIndex = imgArray.length;
                }
                img.src = imgArray[--imgIndex];
            }
            //random: r
            if (key == random) 
            {
                imgIndex = Math.floor((Math.random()*(imgArray.length-1))+1);
                img.src = imgArray[imgIndex];
            }   
        }
        $.post('./templates/viewcomic.php', {variable: imgIndex});
    });
});

</script>
<?php
function  getImages($catParam, $siteParam) {
include './scripts/dbconnect.php';

if ($siteParam == 'artwork') { 
    $table = "artwork"; 
}       
else { 
    $table = "comics"; 
}   

if ($catParam != null) {
    $catResult = $mysqli->query("SELECT id, title, path, thumb, catidFK FROM $table WHERE catidFK = $catParam");
}
else {
    $catResult = $mysqli->query("SELECT id, title, path, thumb, catidFK FROM $table");
}

$img = array();
while($row = $catResult->fetch_assoc()) 
{
    $img[] = "'" . $row['path'] . "'";
}
return $img;
}
?>

viewcomic.php中的PHP位:

include './scripts/keyinput.php'; 

$JSIndex = $_POST['variable'];
echo "Index = " . $JSIndex;
//$JSIndex should be equal to the javascript variable imgIndex... but it outputs nothing

任何想法都会非常有帮助!我想让我的漫画网站上线。

谢谢!

1 个答案:

答案 0 :(得分:1)

您的逻辑错误:在您定义key变量时,e未定义。然后将事件处理程序附加到if语句中,该语句将始终评估为false,以便永远不会起作用。

key的赋值应该在你的事件处理程序中,并且条件需要去,你已经在事件处理程序中了。

编辑:如果按下某个操作键(将其放在事件处理程序中)并对结果执行某些操作,您也应该只执行ajax调用。

编辑2:查看$.post上的手册,您应该添加一个回调函数来处理php脚本的返回值。

例如:

$.post(
       './templates/viewcomic.php',
       { variable: imgIndex },
       function(data) {    /* data contains what you have echoed out in your php script */
           alert(data);
       }
      );