Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Wyszukiwarka z listą wyboru
Forum PHP.pl > Forum > Przedszkole
Gość
Witam
Jak przerobić wyszukiwarkę, aby w polu miasto pojawiała się lista wyboru miast z bazy danych?

Moduł wyszukiwarki search.php:

CODE
defined ('_JEXEC') or die('Restricted access');

if(JRequest::getVar('option')!='com_djclassifieds'){
$document=& JFactory::getDocument();
$cs = JURI::base().'components/com_djclassifieds/style.css';
$document->addStyleSheet($cs);
}

?>
<div class="dj_cf_search">
<form action="index.php" method="post" name="" id="form-search">
<input type="hidden" name="option" id="opt_search" value="com_djclassifieds" />
<input type="hidden" name="view" value="show_search" />
<input type="text" size="12" name="search" value="" class="inputbox" />
<input type="text" size="12" name="miasto" value="" class="inputbox" />
<input type="hidden" name="Itemid" value="54" />
<button type="submit" class="button" onfocus="blur();" >Szukaj</button>
</form>
</div>


Moduł show.php:

CODE
function getAllElements(){

global $mainframe;
$par =& $mainframe->getParams('com_djclassifieds');

$limit = JRequest::getVar('limit', $par->get('limit_djitem_show'), '', 'int');
$limitstart = JRequest::getVar('limitstart', 0, '', 'int');

$search = '';
if(JRequest::getVar('search','0','string')!='0'){
$search = " AND CONCAT(i.name,i.intro_desc,i.description) LIKE '%".JRequest::getVar('search','0','string')."%' ";
}
if(JRequest::getVar('miasto','','','string')!=''){
$search .= " AND i.intro_desc LIKE '%".JRequest::getVar('miasto','','','string')."%' ";
}
$db= &JFactory::getDBO();
$order = JRequest::getVar('order');

$ord="i.id DESC";
if($order=="date"){
$ord="i.date_start DESC ";
}elseif($order=="display"){
$ord="i.display DESC ";
}elseif($order=="description"){
$ord="i.intro_desc ";
}elseif($order=="category"){
$ord="c.name ";
}elseif($order=="title"){
$ord="i.name ";
}

$date_time =& JFactory::getDate();
$date_all=$date_time->toMySQL();
$date = explode(' ',$date_all);
$query1 = "(SELECT i.*, c.name AS c_name FROM #__djcf_items i, #__djcf_categories c WHERE i.cat_id = c.id AND i.date_exp > '".$date[0]."' AND i.published = 1 AND i.special = 1 ".$search." ORDER BY ".$ord.")";
$query2 = "(SELECT i.*, c.name AS c_name FROM #__djcf_items i, #__djcf_categories c WHERE i.cat_id = c.id AND i.date_exp > '".$date[0]."' AND i.published = 1 AND i.special = 0 ".$search." ORDER BY ".$ord.")";
// $query = $query1." UNION ".$query2;
$db->setQuery($query1);
$tab1=$db->loadObjectList();
$db->setQuery($query2);
$tab2=$db->loadObjectList();
$size1 = count($tab1);

$tab=array();
$lend=$limitstart+$limit;
if($lend<=$size1){
$i=0;
foreach($tab1 as $t){
if($limitstart<=$i && $lend>$i){
$tab[]=$t;
}elseif($lend<=$i){
break;
}
$i++;
}
}else if($limitstart<=$size1 && $lend>$size1){
$i=0;
foreach($tab1 as $t){
if($limitstart<=$i && $lend>$i){
$tab[]=$t;
}
$i++;
}
foreach($tab2 as $t){
if($limitstart<=$i && $lend>$i){
$tab[]=$t;
}elseif($lend<=$i){
break;
}
$i++;
}
}else{
$i=$size1;
foreach($tab2 as $t){
if($limitstart<=$i && $lend>$i){
$tab[]=$t;
}elseif($lend<=$i){
break;
}
$i++;
}
}
//$this->_elems=$db->loadObjectList();
//$Arows = $this->_getList($query, $limitstart, $limit);
return $tab;
}

function getCountAllElements(){

global $mainframe;
$par =& $mainframe->getParams('com_djclassifieds');

$search = '';
if(JRequest::getVar('search','0','string')!='0'){
$search = " AND name LIKE '%".JRequest::getVar('search','0','string')."%' ";
}
if(JRequest::getVar('miasto','','','string')!=''){
$search .= " AND i.intro_desc LIKE '%".JRequest::getVar('miasto','','','string')."%' ";
}

$date_time =& JFactory::getDate();
$date_all=$date_time->toMySQL();
$date = explode(' ',$date_all);

$db= &JFactory::getDBO();
$query = "SELECT COUNT(*) FROM #__djcf_items WHERE date_exp > '".$date[0]."' AND published = 1 ".$search." ";

$db->setQuery($query);
$res=$db->loadResult();

return $res;
}


Moduł controller.php:

CODE
$miasto = JRequest::getVar('miasto', '', 'default', 'string');
$redirect= 'index.php?option=com_djclassifieds&view=show&cid=0&order=title&search='.$se.'&miasto='.$miasto.'&Itemid='.$itemid;


Z góry dzięki za pomoc
Gość
Widzę, że muszę sam to rozkminić sad.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.