2013-07-01 1 views
0

나는 닫힌 것 같지만 지금은 붙어 있습니다. 여기에 약간의 배경이 있습니다.PHP 함수에서 반환 된 jQuery 변수를 사용하는 방법

저는 Wordpress를 사용하고 있으며 갤러리 용 플러그인이 있습니다. 각 갤러리에는 ID가 있으며 사용자가 갤러리 링크를 클릭하면 갤러리가 해당 갤러리로 변경됩니다. 갤러리는과 같이 표시되는 :

<?php echo do_shortcode('[slideshow gallery_id="1"]'); ?> 

또는

<?php if (function_exists('slideshow')) { slideshow(true, "1", false, array()); } ?> 

모두

이 같은 일을 - gallery_id 올바른 갤러리를 지정

. 사용자가 링크를 클릭 할 때 올바른 갤러리 ID를 얻기 위해 AJAX를 사용하여 코드를 실행하고 있습니다. gallery.php에서

jQuery('.gallery-btn').click(function() { 
    var galleryId = jQuery(this).data('gallery'); 

    jQuery.ajax({ 
     url: "/wp-content/themes/thetheme/gallery.php", 
     data: {action: galleryId}, 
     type: 'post', 
     success: function(output) { 
      console.log(output); 
     } 
    }) 

}) 

PHP 코드 :

<?php 

if(isset($_POST['action']) && !empty($_POST['action'])) { 
    $galleryId = $_POST['action']; 
    passId($galleryId); 
} 

function passId($id) { 
    echo $id; 
} 

?> 

output 내가 다음 PHP 코드 [slideshow gallery_id="$theID"]에 전달해야 ID를 반환합니다.

내 PHP 코드의 성공 함수에서 output을 어떻게 사용할 수 있습니까?

+0

javascript 변수 'output'을 (를) 사용하려는 PHP 코드는 무엇입니까? – Pitchinnate

+0

Romes

답변

0

짧은 대답은 할 수 없다는 것입니다. 적어도 당신이 제안하는 방식대로는 아닙니다. 갤러리를 생성하는 PHP 코드는 페이지가 처음로드되기 전에 실행됩니다. 페이지가로드 된 후 jQuery에서 스크립트를 호출하여 이미 실행 된 PHP 함수에 전달할 수 없습니다.

즉, 페이지가로드 된 후 갤러리를 업데이트 할 수있는 다른 옵션이있을 수 있습니다. 사용중인 갤러리에 익숙하지 않아서 구체적인 조언을 드릴 수 없습니다. 그러나 일반적인 접근 방식에 대해 이야기 할 수 있습니다.

javascript/jQuery를 사용하여 갤러리에서 원본 HTML 출력 (예 : <img> 태그, src 링크 등)을 변경할 수 있습니다. 이 경우 AJAX를 사용하여 필요에 따라 갤러리 메타 데이터를 풀어 이러한 변경 작업을 수행 할 수 있습니다.

더 간단한 접근법은 갤러리 HTML의 전체 전체 블록을 출력하고 (아마도 초기 함수를 사용하여) 간단히 DOM 내의 현재 HTML에 대해이를 대체하는 것일 수 있습니다. 이 경우 갤러리 기능을 다시 실행하고 javascript에 의해 DOM에 삽입 할 HTML 내용을 반환하는 서버 측 스크립트를 AJAX 호출로 호출 할 수 있습니다.

+0

PHP 쪽에서 'do_shortcode'함수를 실행하고 HTML 출력을 반환하려고 시도했지만 "정의되지 않은 함수 do_shortcode() 호출"이라는 콘솔 오류가 발생합니다. – Romes

+0

@Romes 함수 및 모든 종속성을 호출하는 위치에서 포함됩니다. –

+0

위대한, 내 문제가 해결 된 것 같아요. 할 수있을 때 내가 어떻게했는지 업데이트하라. 다시 작동 시키려면 wp를로드해야했습니다. – Romes

관련 문제