Вы не зашли.
Страницы 1
Тема закрыта
вечер в хату уважаемые.
есть таблица в мускуле "ng_adds", в ней два столбца "A" и "B" внутри произвольная фигня.
хочу сделать поиск типа: SELECT FROM ng_adds where A="значение1" AND B="значение2"
"значение1" и "значение2" из формы поиска берётся.
логичнее было-бы сразу после нажатия кнопки submit ниже формы выводить таблицу с результатами. и при повторном нажатии кнопки submit получать значения снова и таблицу менять.
с AJAX'ом заморачиваться нехочу, в дефолтном search.php без аякса всё сделано, но я там непонял фишки с подключением news.php.
мне помоему с такими подключениями заморачиваться не прийдётся.
вобщем пилю плагин
- в .tpl сую форму c инпутами "значение1" и "значение2"
- в .php их
if($_REQUEST['submit']){
query= 'SELECT FROM ng_adds where A=$_POST ['значение1"] AND B=$_POST ['значение2"]';
foreach ($mysql->select($query) as $row) {
$tRecs []= array(
'a' => $row['a'],
'b' => $row['b'] );
}
$tVars = array(
'entries' => $tRecs
);
$xt = $twig->loadTemplate($tpath['test'].'test.tpl');
$template['vars']['mainblock'] = $xt->render($tVars);
}
но как мне результат вывести сразу, ниже формы, допусти в div'е каком-нибудь?
Не в сети
Когда ты делаешь $xt->render($tVars); ты говоришь шаблонизатору "найди мне все вставки этих переменных и поставь туда нужные значения". В твоем примере у тебя в шаблоне доступна одна переменная entries, которая является массивом. Все. В этом массиве результаты поиска. Вывести переменную, являющуюся массивом через шаблонизатор TWIG можно так
{% for entry in entries %}
{{entry.b}}{{entry.a}}
{% endfor %}
Не в сети
.tpl
<form action="" method="post">
<select name="a">
<option value="1">1</option>
<option value="2">2</option>
</select>
<select name="b">
<option value="1">1</option>
<option value="2">2</option>
</select>
<input type="submit" name="submit" value="Разместить" />
</form>
{% for entry in entries %}
{{entry.a}}
{{entry.b}}
{% endfor %}
.php
<?php
if (!defined('NGCMS'))
exit('HAL');
register_plugin_page('test','','plugin_test');
function plugin_test()
{global $twig, $template, $SYSTEM_FLAGS, $mysql;
$SYSTEM_FLAGS['info']['title']['group'] = 'Проверка тестовой страницы';
$tpath = locatePluginTemplates(array('test'), 'test', 1);
if($_REQUEST['submit']){
$a=$_POST['a'];
$b=$_POST['b'];
print $a;
$query = 'SELECT * FROM '.prefix.'_adds WHERE a="$a"';
foreach ($mysql->select($query) as $row) {
$tRecs []= array(
'a' => $row['a'],
'b' => $row['b'] );
}
}
$tVars = array( 'entries' => $tRecs );
$xt = $twig->loadTemplate($tpath['test'].'test.tpl');
$template['vars']['mainblock'] = $xt->render($tVars);
}
чегото нехватает помоему, записи со значением=1 есть, print срабатывает, но результаты не выводятся
если if($_REQUEST['submit']) убрать и вместо переменной в запрос "1" вбить всё выводится
Изменено fedor-jan (2011-12-25 22:13:09)
Не в сети
Шаблонизатор тут не причем Скобки для читаемости. У тебя же вместо переменной значение не подставлялось, а ее название было тем значением, которое искалось, так как было заключено в одинарные кавычки, внутри которых не происходит подстановка переменных.
Не в сети
Страницы 1
Тема закрыта