2013-05-24 2 views
0

Я пытаюсь создать форму для поиска узла с определенными значениями поля. Ниже моя форма. Узел содержит поле города, термин таксономии и т.д. Все, что я хочу знать, как вывести результат я получаю от MySQL выбрать в новой Друпал страницеФорма Drupal для поиска содержимого

function q_search_form($form_state) { 
$form['qsearch']['category'] = array(
    '#type' => 'select', 
    '#options' => array('' => 'Any', 2 => 'Automotive', 1 => 'Real Estate'), 
    '#attributes' => array('class' => 'drop-box'), 
    '#prefix' => '<table width="470"><tr><td width="170">Select Category</td><td width="300">', 
    '#suffix' => '</td></tr>' 
); 
$form['qsearch']['city'] = array(
    '#type' => 'select', 
    '#options' => array('' => 'Any', 'kozhikode' => 'Kozhikode', 'kochi' => 'Kochi'), 
    '#attributes' => array('class' => 'drop-box'), 
    '#prefix' => '<tr><td width="170">City</td><td width="300">', 
    '#suffix' => '</td></tr>' 
); 
$form['qsearch']['property'] = array(
    '#type' => 'select', 
    '#options' => array('' => 'Any', 18 => 'Land and House', 17 => 'Land'), 
    '#attributes' => array('class' => 'drop-box'), 
    '#prefix' => '<tr><td width="170">Property</td><td width="300">', 
    '#suffix' => '</td></tr>' 
); 
$form['qsearch']['wanto'] = array(
    '#type' => 'select', 
    '#options' => array('' => 'Any', 'sell' => 'Sell', 'buy' => 'Buy'), 
    '#attributes' => array('class' => 'drop-box'), 
    '#prefix' => '<tr><td width="170">Want to</td><td width="300">', 
    '#suffix' => '</td></tr>' 
); 
$form['qsearch']['submit'] = array(
    '#type' => 'submit', 
    '#value' => t('Search'), 
    '#attributes' => array('id' => 'Search', 'class' => 'srch-button'), 
    '#prefix' => '<tr><td><a class="adv-srch" href="#">Advance Search</a></td><td>', 
    '#suffix' => '</td></tr></table>' 
); 
return $form; 
} 

function q_search_form_submit($form, &$form_state) { 
    $wantto = $form_state['values']['wanto']; 
    $property = $form_state['values']['property']; 
    $city = $form_state['values']['city']; 
    $category = $form_state['values']['category']; 
     $sql = ' SELECT A.nid FROM node A 
     LEFT JOIN content_type_item B ON A.vid = B.vid 
     LEFT JOIN term_node C ON A.vid = C.vid 
     LEFT JOIN term_hierarchy D ON D.tid = C.tid 
     WHERE A.type = "item" 
     AND B.field_tr_type_value = "'.$wantto.'" 
     AND B.field_city_value = "'.$city.'" 
     AND D.parent = '.$category.' 
     AND C.tid = '.$property.' 
    '; 
    $result = db_query($sql); 

    } 

ответ

0

После вашего запроса попробовать что-то вроде этого,

while($result = db_fetch_array($sql)){ 
    $output .= "<div>$result['somevalue']</div>"; 
    $output .= " <br/> "; 
} 
if (isset($sql)) { 
    drupal_set_message(t('Search submitted successfully.'));  
}else { 
    drupal_set_message(t('Please try again.'));  
} 
return $output; 
+0

Спасибо, но это не то, что я ищу. Я хочу показать результат на другой странице. Как я могу отправить вывод на другую страницу – Nabil

+0

Хорошо, чем хранить ваши переменные запроса в $ _SESSION (в вашем случае $ form_state ['values'] ['wanto'] и т. Д.) И перенаправить вашу форму через $ form_state ['redirect' ] = 'somepath'; и продолжить с вышеупомянутой логикой. –

Смежные вопросы