所以這裏是問題,我有一個index.php
(與所有的PHP代碼),我有一個index.tpl
文件與所有的HTML的東西。但現在因爲我使用ajax,我有另一個PHP文件,應該輸出一些數據(data.php)。問題是我不知道如何選擇data.php文件中的模板,我所知道的只是index.php
我有一個顯示tpl ($Smarty->display($filename);
的函數),但我不想再次顯示模板,在data.php
文件我只想分配一些變量需要顯示在index.tpl
smarty模板
編輯:
確定這將是很長: 首先我需要解釋我想實現的目標。我有index.php和data.php。在index.php:
<?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裏是有點長,所以我會發布重要組成部分:
xmlhttp.open("get","data.php?q="+str,true);
這是AJAX代碼,該代碼發送+ STR值GET方法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的Smarty的功能,但你得到的是代碼。
我希望你明白現在有什麼問題。如何在不顯示模板文件的情況下將變量分配給模板。這樣,$ name變量可以在index.tpl中找到(名稱顯示在數據庫中),但由於data.php中的顯示函數,整個內容會再次顯示。
要麼我誤會提出這個問題或者你問的問題是不可能的。你想讓ajax調用data.php刷新顯示的頁面?內容如何顯示兩次?請顯示您的JavaScript代碼。 – Alfwed