0

我正在尝试将一个非常简单的 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

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

谢谢!

4

1 回答 1

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);
       }
      );
于 2012-11-14T03:21:23.927 回答