만화책 웹 사이트 Hitting Trees with Sticks을 사용하여 다음 또는 이전의 화살표 키를 눌러 다음, 이전 또는 임의의 만화 ID를 가져올 수 있습니다.jquery AJAX가 PHP 변수를 업데이트하지 않기를 요청했습니다.
이미지가 데이터베이스에 저장되므로 클라이언트 측에서 이러한 이미지를 순환시키는 유일한 방법은 자바 스크립트 배열에 이미지를 저장하고 phg $ imgid를 imgIndex라는 javascript 변수에 저장하는 것입니다. 그런 다음 키보드 키를 누를 때 클라이언트 측에서 해당 인덱스를 변경할 수 있습니다.
사용자가 키를 누르면 URL에서 imgid를 변경하기 위해 pushstate를 사용하지만 서버 측 $ imgid를 실제로 업데이트하지는 않습니다. 나는 각각의 특정 ID와 liking 함수를 연관 짓고 있기 때문에 서버 측 $ imgid를 업데이트해야한다. 그러나 현재, 새로운 ID를 얻기 위해 키를 누를 때 img ID와 관련된 총 좋아하는 것이 새로 고침/업데이트되지 않는다. 영상.
내 솔루션은 PushState를 사용하여 URL을 업데이트하는 것이 아니라 키를 누르면 $ .post를 사용하여 업데이트 된 imgIndex를 PHP 스크립트로 보냅니다.
여기에 조각입니다 :
KeyInput.php는 :
<script type="text/javascript">
var imgArray = [<?php echo implode(',', getImages($site)) ?>];
var imgIndex = <?php echo $imgid ?>;
$(document).ready(function() {
var img = document.getElementById("showimg");
img.src = imgArray[<?php echo $imgid ?>];
$(document).keydown(function (e) {
var key = e.which;
var rightarrow = 39;
var leftarrow = 37;
var random = 82;
if (key == rightarrow)
{
imgIndex++;
if (imgIndex > imgArray.length-1)
{
imgIndex = 0;
}
img.src = imgArray[imgIndex];
window.history.pushState(null, null, '.?action=viewimage&site=comics&id=' + imgIndex);
$.post('./templates/viewimage.php', { _newImgId : imgIndex },
function(data) {
//alert(data);
}
);
}
viewimage.php이 원래 $의 imgid을 가져옵니다 파일입니다 : 이것은 클라이언트 측 자바 스크립트입니다 , 다음 키 입력을 받아 들일 keyInput.php 스크립트를 호출 ... 자바 스크립트 imgid 변경합니다. 테스트를 위해 $ .post 및 $ .get AJAX를 사용하여 업데이트 된 imgid를 보내려고했습니다. 아래에서 볼 수 있듯이 $newID = $_POST['_newImgId];
입니다. $ newID를 출력 할 때 정의되지 않았다고합니다.
<?php
/*
Controls display of comic on the viewComic template
*/
include 'include/header.php';
global $site, $imgid;
$cat = (isset($_GET['cat']) ? ($_GET['cat']) : null);
$site = (isset($_GET['site']) ? ($_GET['site']) : null);
$title = (isset($_GET['title']) ? ($_GET['title']) : null);
$imgid = $_GET['id'];
include './scripts/keyinput.php';
$newID = $_POST['_newImgId];
echo $newID; //THIS SHOULD ECHO THE UPDATED ID, but it says it is not defined
의견이 있으십니까?
감사합니다.
당신이 그것을 언급 생각하지만, 당신이 당신의 예에서, 바로 HTTP 요청 방법의 혼합 알고있다? JS 코드가 "_postID"로 POST를 호출하고 PHP 예제가 $ _GET [ "_ getID"]를 사용하고 있음을 의미합니다. –
자바 스크립트가 게시물을 사용하기 때문에'$ _ post [ '_ postID']'를 사용하지 않아야합니까? –
@WebDeskIL 예. 오타되었습니다 – Growler