2012-06-26 5 views
2

사용자가 웹 사이트의 언어를 변경하면 javascript로 PHP 파일의 포함 경로를 변경하려고합니다.자바 스크립트로 PHP 포함 경로 변경

나는이 코드를 사용하여 웹 사이트의 언어가 영어인지 아닌지 확인하고 있습니다. 내가

<?php include 'navigation_en.php'; ?> 

<?php include 'navigation.php'; ?> 

에서 포함 기능을 변경 싶어

<script type="text/javascript"> 
     $(function() { 
      var pathname = window.location.pathname; 
      if (pathname.search('/en/') != -1){ 
       //I wanna insert the new path here 
      } 
     }); 
    </script> 

그리고 누군가는이 일을하는 방법을 알고 있나요? 또는 php를 사용하여 php include 함수를 변경하려면 경로명을 확인해야합니까?

+0

PHP는 전혀 JS 필요한 이유를 자바 스크립트가 시작되기 전에 완료, 어쨌든 내가 볼 수없는 자사의 서버 측을 실행, 모든 수 PHP로 끝내야합니다 –

+0

자바 스크립트로 포함 경로를 변경할 수 없습니다. – jedwards

+0

자바 스크립트 코드가 호출되면 PHP가 작동합니다. 사이트를 새로 고침하고 매개 변수로 작업해야합니다. – Amberlamps

답변

0

PHP가 클라이언트에 보내기 전에 마크 업을 생성하기 때문에 가능하지 않습니다. 또 다른 해결책은 JavaScript를 사용하여 페이지를 다시로드하고 URL에 매개 변수를 포함시켜 PHP가 사용할 포함 태그를 알려주는 것입니다.

1

PHP만으로는 JavaScript를 사용하여 변수를 변경할 수 없습니다. 그러나 당신은 한 가지를 할 수 있습니다. 서버에 요청을 실행하여 <select> 태그의 값이 변경되면 AJAX 쿼리를 사용할 수 있습니다. 자바 스크립트는 PHP 처리가 완료 후 실행되기 때문에,

if(isset($_GET["lang"])) 
    // Set the lang. 
    die("English"); 
3

당신은 순수 자바 스크립트로이 작업을 수행 할 수 없습니다 백엔드 PHP 코드에서

$("select.language").change(function(){ 
    $.ajax({ 
     url: 'changeLang.php?lang=' + $(this).val(), 
     success: function(data) { 
      alert("Successfully set the language to " + data); 
     } 
    }); 
}); 

, 당신은이 방법을 수행 할 수 있습니다. 당신은 비록 순수 PHP와 같은 일을 수행 할 수 있습니다

$uri = $_SERVER['REQUEST_URI']; 
if(preg_match('/^\/en\//', $uri)) { 
    include_once('include_en.php'); 
} 
else { 
    include_once('include.php'); 
} 

이 코드의 URL이 형태가 될 것이라고 가정 http://www.mydomain.com/en/some/page.php

편집 :이 코드로

$_SERVER['REQUEST_URI를 내부 워드 프레스를 실행 ] 언어 부분을 반환하지 않습니다. 영업 이익 덕분에 워드 프레스에 그것을 할 수있는 방법은 다음과 같습니다

$lang = get_bloginfo('language'); 
if(preg_match('/^\/en-/', $lang)) { 
    include_once('include_en.php'); 
} 
else { 
    include_once('include.php'); 
} 
+0

이 답변은 실제로 의미가 있습니다. –

+0

@SalmanA thanks :) –

+0

@AleksG이 답변은 나에게도 의미가 있습니다. 하지만 퍼블릭 링크가있는 Wordpress를 사용하고 있기 때문에 $ uri는 두 언어 모두 동일합니다. 내가 $ uri를 반향하고있을 때. REQUEST_URI와 다른 솔루션이 있습니까? $ uri가/ko/ – linzprod

관련 문제