HTML/PHP/AJAX/JS - [ PHP ] Wy?wietlanie wyników w szablonie.
Crypt3r - 16-03-2015, 00:28 Temat postu: [ PHP ] Wyświetlanie wyników w szablonie. Problem prawdopodobnie dotyczy pętli while lub samego if'a ale nie jestem pewien. Po prostu wynik "temat1" nie wyświetla się w tabelce pod przyciskami - dołączam zrzut.
mapa.php
Kod: | <?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_main.' . $phpEx);
$page_title = $lang['Mapa_forum'];
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
include($phpbb_root_path . 'includes/page_header.'.$phpEx); {
$sortuj = $_GET['sortuj'];
if ($sortuj == 'tematy') {
// echo $lang['Topics'] . ':<br />';
$sql = 'SELECT t.topic_id, t.topic_title
FROM ' . TOPICS_TABLE . ' t, ' . FORUMS_TABLE . ' f
WHERE f.forum_id = t.forum_id
AND f.auth_view = 0
AND f.auth_read = 0
ORDER BY topic_id DESC';
if (!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "nie mozna pobrac danych z bazy", "", __LINE__, __FILE__, $sql);
}
while ($row = $db->sql_fetchrow($result))
$wyniki = '<a href="viewtopic.php?t=' . $row['topic_id'] . '" title="' . $row['topic_title'] . '">' . $row['topic_title'] . '</a>';
{
echo $wyniki;
}
//definicja {FUNKCJA} funkcji w szablonie tpl
$template->assign_block_vars('mapa', array(
'WYNIKI' => $wyniki
));
}
$template->set_filenames(array('body' => 'mapa_body.tpl'));
$template->pparse('body');
}
/* Stopka */
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?> |
mapa_body.tpl
Kod: | <table width="100%" cellspacing="1" cellpadding="2" border="0" align="center">
<tr>
<td align="left">
<span class="sciezka">Ścieżka: <a href="{U_INDEX}">{L_INDEX}</a> » <a href="{U_MAPA}">{L_MAPA}</a></span>
</td>
</tr>
</table>
<table width="100%" cellpadding="3" cellspacing="1" border="0" class="linia_forum">
<tr>
<td class="belka_gora" colspan="4" align="center"><span class="index_tekst">Mapa forum</span></td>
</tr>
<tr>
<td class="tlo1" align="center" width="30%"><span class="naglowek_kolor_b">Sortowanie<br/>(wybierz opcje)</span></td>
<td class="tlo1" align="center" width="70%">
<a href="mapa.php?sortuj=tematy"><button class="button">Tematy</button></a>
</td>
</tr>
<!-- BEGIN mapa -->
<tr>
<td class="tlo1" align="center" width="30%">wyniki</td>
<td class="tlo1" align="center" width="70%">{mapa.WYNIKI}</td>
</tr>
<!-- END mapa-->
<tr>
<td class="belka_dol" colspan="4"></td>
</tr>
</table> |
Kod wydaje się być w porządku, jednak nie jestem do końca pewny. Może ktoś z was będzie miał jakiś patent na to?
kooza - 16-03-2015, 19:35
nie potrzebnie dodałeś echo w kodzie, skoro chcesz dodać wynik do templatki.
Kod: | <?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_main.' . $phpEx);
$page_title = $lang['Mapa_forum'];
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
$sortuj = $_GET['sortuj'];
if ($sortuj == 'tematy') {
$sql = 'SELECT t.topic_id, t.topic_title
FROM ' . TOPICS_TABLE . ' t, ' . FORUMS_TABLE . ' f
WHERE f.forum_id = t.forum_id
AND f.auth_view = 0
AND f.auth_read = 0
ORDER BY topic_id DESC';
if (!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "nie mozna pobrac danych z bazy", "", __LINE__, __FILE__, $sql);
}
while ($row = $db->sql_fetchrow($result))
{
$wyniki = '<a href="viewtopic.php?t=' . $row['topic_id'] . '" title="' . $row['topic_title'] . '">' . $row['topic_title'] . '</a>';
$template->assign_block_vars('mapa', array(
'WYNIKI' => $wyniki
));
}
}
$template->set_filenames(array('body' => 'mapa_body.tpl'));
$template->pparse('body');
/* Stopka */
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?> |
Crypt3r - 16-03-2015, 19:56
No tak, jednak wyniki nie są wyświetlane w szablonie. Gdzieś coś jest pominięte, ale kompletnie tego nie widzę. Zastanawia mnie pętla while. Echo w tym momencie nie ma żadnego znaczenia. Wyniki byłyby wyświetlane w szablonie i samym echo.
kooza - 16-03-2015, 23:33
Tak, wyświetlało Ci wyniki nad tabelą bo pobierało wyniki z echo którą dodałeś do pętli. A w tabelce Ci nie pokazywało, dlatego że nie dodałeś templatki do pętli. Podałem Ci kod wyżej, sprawdzałeś czy wogóle działa? Bo poprawiałem w ciemno i nie sprawdzałem, ale powinno być ok
Crypt3r - 16-03-2015, 23:51
Trochę inaczej skonstruowałem pętlę i syntax dla szablonu. Łap + za dobre chęci.
Tommekk80 - 17-03-2015, 10:55
Po 'mapa' dodaj spację.
Masz swój błąd...
|
|
|