Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#1 2011-12-25 21:28:20

fedor-jan
Участник
Откуда на раёне
Зарегистрирован: 2011-09-04
Сообщений: 79
Рейтинг :   

помогите сделать поиск

вечер в хату уважаемые.

есть таблица в мускуле "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'е каком-нибудь?

Не в сети

#2 2011-12-25 21:33:58

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: помогите сделать поиск

Мне кажется, что у тебя какая-то каша в голове со всем этим.

Порядок расположения элементов определяется шаблоном.

Не в сети

#3 2011-12-25 21:37:26

fedor-jan
Участник
Откуда на раёне
Зарегистрирован: 2011-09-04
Сообщений: 79
Рейтинг :   

Re: помогите сделать поиск

я просто не везжаю как мне зарегистрировать результаты поиска элементом и вывести его

Не в сети

#4 2011-12-25 21:47:09

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: помогите сделать поиск

Когда ты делаешь $xt->render($tVars); ты говоришь шаблонизатору "найди мне все вставки этих переменных и поставь туда нужные значения". В твоем примере у тебя в шаблоне доступна одна переменная entries, которая является массивом. Все. В этом массиве результаты поиска. Вывести переменную, являющуюся массивом через шаблонизатор TWIG можно так

 {% for entry in entries %}
        {{entry.b}}{{entry.a}}
    {% endfor %}

Не в сети

#5 2011-12-25 22:09:25

fedor-jan
Участник
Откуда на раёне
Зарегистрирован: 2011-09-04
Сообщений: 79
Рейтинг :   

Re: помогите сделать поиск

.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)

Не в сети

#6 2011-12-25 22:13:05

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: помогите сделать поиск

Что это?

$query = 'SELECT * FROM '.prefix.'_adds WHERE a="$a"';

Замени на

$query = 'SELECT * FROM '.prefix.'_adds WHERE a='.db_squote($a);

Не в сети

#7 2011-12-25 22:19:42

fedor-jan
Участник
Откуда на раёне
Зарегистрирован: 2011-09-04
Сообщений: 79
Рейтинг :   

Re: помогите сделать поиск

всё заработало, спасибо.

вроде переменная задана, не через шаблонизатор у меня такой код прокатывал

Не в сети

#8 2011-12-25 23:55:12

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: помогите сделать поиск

Шаблонизатор тут не причем smile Скобки для читаемости. У тебя же вместо переменной значение не подставлялось, а ее название было тем значением, которое искалось, так как было заключено в одинарные кавычки, внутри которых не происходит подстановка переменных.

Не в сети

Подвал раздела

Работает на FluxBB