所以这是问题所在,我有一个index.php
(包含所有 php 代码)并且我有一个index.tpl
包含所有 html 内容的文件。但现在因为我使用 ajax 我有另一个 php 文件应该输出一些数据(data.php)。问题是我不知道如何在 data.php 文件中选择模板,我只知道index.php
我有一个显示tpl ($Smarty->display($filename);
) 但我不想在data.php
文件我只想分配一些需要显示的变量index.tpl
编辑:
好的,这会很长:首先我需要解释我想要完成什么。我有 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 代码,此代码将 GET 方法中的 +str 值发送到 data.php 文件,然后使用该值并从数据库中提取一些数据。
数据.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 中访问(名称显示在 db 中),但由于 data.php 中的显示功能,整个内容再次显示。