ajouter dans recherche liste déroulante croissant/décroissan

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : ajouter dans recherche liste déroulante croissant/décroissan

Re: ajouter dans recherche liste déroulante croissant/décroi

par toumax » 05 oct. 2012, 14:49

Bonjour et merci car je comprend que je n'ai que deux fichiers à modifier donc...
Selon Note++,
ce serait ce fichier php qui effectuerait la requête : (en rouge le $formURL )


<?php
// no direct access
defined('_JEXEC') or die;

JHtml::addIncludePath(JPATH_ROOT.'/administrator/components/com_jea/helpers/html');
JHtml::addIncludePath(JPATH_ROOT.'/components/com_jea/helpers/html');

// Load component language
JFactory::getLanguage()->load('com_jea', JPATH_BASE.'/components/com_jea');

$states = array(
'filter_search' => '',
'filter_transaction_type' => '',
'filter_type_id' => 0,
'filter_department_id' => 0,
'filter_town_id' => 0,
'filter_area_id' => 0,
'filter_zip_codes' => '',
'filter_budget_min' => 0,
'filter_budget_max' => 0,
'filter_living_space_min' => 0,
'filter_living_space_max' => 0,
'filter_land_space_min' => 0,
'filter_land_space_max' => 0,
'filter_rooms_min' => 0,
'filter_bedrooms_min' => 0,
'filter_bathrooms_min' => 0,
'filter_floor' => '',
'filter_hotwatertype' => 0,
'filter_heatingtype' => 0,
'filter_condition' => 0,
'filter_orientation' => 0,
'filter_amenities' => array()
);

$uid = uniqid();

$app = JFactory::getApplication();

// Retrieve user request saved in session
foreach ($states as $name => $defaultValue) {
$states[$name] = $app->getUserStateFromRequest('module_jea_search.'. $name, $name, $defaultValue);
}

$useAjax = $params->get('use_ajax', 0);
$transationType = $params->get('transaction_type');

$showLocalization = $params->get('show_departments',1)
|| $params->get('show_towns',1)
|| $params->get('show_areas',0)
|| $params->get('show_zip_codes',0);

$showOtherFilters = $params->get('show_number_of_bedrooms')
|| $params->get('show_number_of_bathrooms')
|| $params->get('show_floor')
|| $params->get('show_hotwatertypes')
|| $params->get('show_heatingtypes')
|| $params->get('show_conditions')
|| $params->get('show_orientation');

if(empty($transationType) && empty($states['filter_transaction_type'])) {
// Set SELLING as default transaction_type state
$states['filter_transaction_type'] = 'SELLING';
}

$itemid = $params->get('search_itemid', 0);
if ($itemid) {
$formURL = JRoute::_('index.php?option=com_jea&task=properties.search&Itemid='.$itemid);
} else {
$formURL = JRoute::_('index.php?option=com_jea&task=properties.search');
}


require(JModuleHelper::getLayoutPath('mod_jea_search'));


Donc si je comprend bien, sur ce fichier , je dois fais en sorte qu'il fasse un tri avec un "order by"
et sur le fichier que j'ai posté hier, j'ajoute le champ qui fait appelle au "order by" .

c'est bien ça?

Merci

Re: ajouter dans recherche liste déroulante croissant/décroi

par toumax2 » 05 oct. 2012, 14:43

Selon Note++,
ce serait ce fichier php qui effectuerait la requête : (en rouge le $formURL )

Code : Tout sélectionner

<?php // no direct access defined('_JEXEC') or die; JHtml::addIncludePath(JPATH_ROOT.'/administrator/components/com_jea/helpers/html'); JHtml::addIncludePath(JPATH_ROOT.'/components/com_jea/helpers/html'); // Load component language JFactory::getLanguage()->load('com_jea', JPATH_BASE.'/components/com_jea'); $states = array( 'filter_search' => '', 'filter_transaction_type' => '', 'filter_type_id' => 0, 'filter_department_id' => 0, 'filter_town_id' => 0, 'filter_area_id' => 0, 'filter_zip_codes' => '', 'filter_budget_min' => 0, 'filter_budget_max' => 0, 'filter_living_space_min' => 0, 'filter_living_space_max' => 0, 'filter_land_space_min' => 0, 'filter_land_space_max' => 0, 'filter_rooms_min' => 0, 'filter_bedrooms_min' => 0, 'filter_bathrooms_min' => 0, 'filter_floor' => '', 'filter_hotwatertype' => 0, 'filter_heatingtype' => 0, 'filter_condition' => 0, 'filter_orientation' => 0, 'filter_amenities' => array() ); $uid = uniqid(); $app = JFactory::getApplication(); // Retrieve user request saved in session foreach ($states as $name => $defaultValue) { $states[$name] = $app->getUserStateFromRequest('module_jea_search.'. $name, $name, $defaultValue); } $useAjax = $params->get('use_ajax', 0); $transationType = $params->get('transaction_type'); $showLocalization = $params->get('show_departments',1) || $params->get('show_towns',1) || $params->get('show_areas',0) || $params->get('show_zip_codes',0); $showOtherFilters = $params->get('show_number_of_bedrooms') || $params->get('show_number_of_bathrooms') || $params->get('show_floor') || $params->get('show_hotwatertypes') || $params->get('show_heatingtypes') || $params->get('show_conditions') || $params->get('show_orientation'); if(empty($transationType) && empty($states['filter_transaction_type'])) { // Set SELLING as default transaction_type state $states['filter_transaction_type'] = 'SELLING'; } $itemid = $params->get('search_itemid', 0); [color=#FF0000]if ($itemid) { $formURL = JRoute::_('index.php?option=com_jea&task=properties.search&Itemid='.$itemid); } else { $formURL = JRoute::_('index.php?option=com_jea&task=properties.search'); }[/color] require(JModuleHelper::getLayoutPath('mod_jea_search'));
Donc si je comprend bien, sur ce fichier , je dois fais en sorte qu'il fasse un tri avec un "order by"
et sur le fichier que j'ai posté hier, j'ajoute le champ qui fait appelle au "order by" .

c'est bien ça?

Re: ajouter dans recherche liste déroulante croissant/décroi

par toumax2 » 04 oct. 2012, 16:56

merci beaucoup...je me penche dessus et vous tiens au courant.

Re: ajouter dans recherche liste déroulante croissant/décroi

par AB » 04 oct. 2012, 16:37

C'est de l'ajax. Ce script doit faire appel à un fichier php qui fait la requête ($formURL). Il suffirait donc d'ajouter un champ dans ton formulaire qui recueille le tri du visiteur, et dans le fichier php qui fait la requête, modifier celle-ci, pour qu'elle prenne en compte ce tri avec un ORDER BY. C'est la méthode la plus simple selon moi.
Le code que tu nous montre ne me permet pas de t'en dire plus...

ajouter dans recherche liste déroulante croissant/décroissan

par toumax2 » 04 oct. 2012, 14:32

Bonjour,

voilà, j'ai un fichier php qui me permet de faire une recherche sur de l'immobilier (ville, prix, type),
je souhaite juste ajouter dans ce code 1 liste déroulante avec comme choix deux lignes : croissant/décroissant (implicitement sur le prix)
comme ça, lorsqu'on clic sur "rechercher", on a notre résultat en prix croissant ou décroissant selon notre choix.

je ne vois pas comment m'y prendre, je vois en surfant sur le net de l'implode mais je ne suis pas sûr que je sois dans le vrai.

je souhaite sincèrement comprendre ou être aiguillé car je suis perdu, voici le contenu du default.php :

<?php
defined('_JEXEC') or die();

$fields = json_encode($states);
$ajax = $useAjax? 'true': 'false';
JHTML::script('media/com_jea/js/search.js', true);
$document = JFactory::getDocument();
$document->addScriptDeclaration("
window.addEvent('domready', function() {
var jeaSearch = new JEASearch('mod-jea-search-form-$uid', {fields:$fields, useAJAX:$ajax});
jeaSearch.refresh();

});");
?>

<form action="<?php echo $formURL ?>" method="post" id="mod-jea-search-form-<?php echo $uid ?>">

<p style="padding-top:10px;border-top:3px double #545455;">
<?php echo JHtml::_('features.types', $states['filter_type_id'], 'filter_type_id', array('id' => 'type_id'.$uid)) ?> <!--type de bien-->
</p>

<p style="padding-top:10px;">
<?php if ($params->get('show_towns', 1)): ?>
<?php echo JHtml::_('features.towns', $states['filter_town_id'], 'filter_town_id', array('id' => 'town_id'.$uid )) ?> <!-- villes -->
<?php endif ?>
<p/>

<?php if ($params->get('show_budget', 1)): ?> <?php endif ?> <!--prix-->

<p style="padding:10px 0;border-bottom:3px double #545455;">
<!--<input type="reset" class="button" value="<?php echo JText::_('JSEARCH_FILTER_CLEAR') ?>" />--> <!--bouton recherche et reset--> <!--effacer-->
<input type="submit" class="boutonsearch" value="" /><!--afficher les biens-->
</p>

</form>


Merci à ceux qui auront pri le temp de me lire.