여기에 문제가 있습니다. index.php
(모든 PHP 코드 포함)이 있고 index.tpl
개의 HTML 항목이 모두 있습니다. 하지만 지금은 아약스를 사용하기 때문에 일부 데이터 (data.php)를 출력해야하는 또 다른 PHP 파일이 있습니다. 문제는 data.php 파일에서 템플릿을 선택하는 방법을 모르겠다는 것입니다. index.php
에있는 것입니다. tpl ($Smarty->display($filename);
을 표시하는 기능이 있지만) (다시) 템플릿을 표시하고 싶지 않습니다. data.php
파일에 난 그냥 index.tpl
멋진 템플릿
편집에 표시 할 몇 가지 변수를 할당 할 :
이 오래 될 것입니다확인 : 먼저 내가 달성하고 싶어하는지 설명 할 필요가있다. 나는 index.php와 data.php를 가지고있다. 의 index.php :
xmlhttp.open("get","data.php?q="+str,true);
이 AJAX 코드는이 코드가 GET 방식에서 + STR 값을 보냅니다
<?php
include("../include/config.php");
include("../include/functions/import.php");
$thebaseurl = $config['baseurl'];
$query ="SELECT name FROM contacts";
$results = $conn->execute($query);
$select-names = $results->getrows();
STemplate::assign('select-names',$select-names);
$templateselect = "index.tpl";
STemplate::display($templateselect);
?>
한편, index.tpl 그래서 나는 중요한 부분을 게시 할 예정입니다 조금 긴 그런 다음 data.php 파일은 값을 사용하고 데이터베이스에서 일부 데이터를 가져옵니다.
data.php :
$q=$_GET["q"];
$sql="SELECT * FROM contacts WHERE name = '$q'";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
$name = $row['name'];
}
STemplate::assign('name',$name);
$templateselect = "index.tpl";
STemplate::display($templateselect); //the second display
?>
은 내가 유식 기능이 여기에 클래스 STemplate을 사용하지만 코드입니다 것을 얻을.
지금은 문제가 무엇인지 이해하시기 바랍니다. 템플릿 파일을 다시 표시하지 않고 템플릿에 변수를 할당하려면 어떻게합니까? 이렇게하면 $ name 변수가 index.tpl에서 액세스 할 수 있지만 (이름은 db에서 표시됨) data.php의 dispaly 함수로 인해 전체 내용이 다시 표시됩니다.
내가 어느 misunders와 그 의지 만 처리 data.tpl, data.php와 내용을 #ajax_list 새로 고침 자바 스크립트 코드를 추가해야 tood 질문이나 당신이 묻는 것은 불가능합니다. ajax에 의해 호출 된 data.php가 표시되는 페이지를 새로 고치기를 원하십니까? 콘텐츠가 어떻게 두 번 표시 될 수 있습니까? 자바 스크립트 코드를 보여주십시오. – Alfwed