Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2017
    Messaggi
    6

    Funzione sito agenzia immobiliare

    Buongiorno a tutti...sto cercando di modificare la maschera di ricerca di un sito di agenzia immobiliare (la mia) e vorrei assistenza su come fare...Sono assolutamente un amatoriale in questo campo e finora le modifiche fatte le ho fatte ad intuito...ma stavolta non ci arrivo....non siate troppo duri...
    parto dall'inserire le parti del codice che mi interessa modificare:

    function cerca_prezzo ($nome_campo)
    {
    global $conn, $_REQUEST, $language_fisse, $fasciaprezzo;

    if (!isset($_REQUEST[''.$nome_campo.''])) $valore_form=""; else $valore_form = $_REQUEST[''.$nome_campo.''];

    echo "<select name=\"".$nome_campo."\" class=\"ui-select\">";
    echo "<option value=\"0\">".$language_fisse['scegli_prezzo']."</option>";

    foreach ($fasciaprezzo AS $key=>$value)
    {
    if ($valore_form == $key) $selezione = "selected"; else $selezione = "";

    if ($value['a']==0)
    $etichetta = $language_fisse['oltre']." ".NUMERO($value['da'],'pr');
    elseif ($value['da']==1)
    $etichetta = $language_fisse['fino_a']." ".NUMERO($value['a'],'pr');
    else
    $etichetta = $language_fisse['da']." ".NUMERO($value['da'],'pr')." ".$language_fisse['a']." ".NUMERO($value['a'],'pr');

    echo "<option value=\"".$key."\" ".$selezione.">".ucfirst($etichetta)."</option>";
    }
    echo "</select>";
    }


    Questo codice si ricollega a delle fasce di prezzo per la ricerca degli immobili sul sito ed in particolare a:

    /*array cerca limiti*/
    $fasciaprezzo[1]['da'] = "1";
    $fasciaprezzo[1]['a'] = "500"; (Affitto)
    $fasciaprezzo[2]['da'] = "501";
    $fasciaprezzo[2]['a'] = "1500"; (Affitto)
    $fasciaprezzo[3]['da'] = "1501";
    $fasciaprezzo[3]['a'] = "50000";
    $fasciaprezzo[4]['da'] = "50000";
    $fasciaprezzo[4]['a'] = "250000";
    $fasciaprezzo[5]['da'] = "250000";
    $fasciaprezzo[5]['a'] = "500000";
    $fasciaprezzo[6]['da'] = "500000";
    $fasciaprezzo[6]['a'] = "0";

    Ora come si vede, le prime 2 fasce di prezzo sono per affitti. Vorrei quindi distinguerle separatamente quando viene selezionata la casella "motivazione" --> AFFITTO o "Motivazione"-->VENDITA. Il codice che fa capo al campo MOTIVAZIONE � questo:

    function cerca_motivazione ($tipo)
    {
    global $conn, $_REQUEST, $language_fisse;

    if (!isset($_REQUEST['Motivazione'])) $_REQUEST['Motivazione']="";

    $returnQuery="";
    $query = "SELECT M.id, M.nome FROM motivazione AS M INNER JOIN immobili AS I ON M.id=I.Motivazione WHERE M.id!='4' GROUP BY I.Motivazione ORDER BY M.id";
    $risultati=mysqli_query($conn,$query) or die (mysqli_error($conn));
    while ($row=mysqli_fetch_array($risultati))
    {
    $selezione = "";
    if ($_REQUEST['Motivazione'])
    if ( (in_array($row['id'], $_REQUEST['Motivazione'])) AND ($tipo=="multi" || $tipo=="select") ) $selezione = "selected";
    elseif ( (in_array($row['id'], $_REQUEST['Motivazione'])) AND ($tipo=="radio" || $tipo=="checkbox") ) $selezione = "checked";

    if ($tipo=="multi" || $tipo=="select")
    $returnQuery .= "<option value=\"".$row['id']."\" ".$selezione.">".$language_fisse[$row['nome']]."</option>";
    elseif ($tipo=="radio" || $tipo=="checkbox")
    $returnQuery .= "<input class=\"cerca_".$tipo."\" name=\"Motivazione[]\" type=\"".$tipo."\" value=\"".$row['id']."\" ".$selezione." id=\"mot-".$tipo."-".$row['id']."\" /> <label class=\"cerca_".$tipo."_label\" for=\"mot-".$tipo."-".$row['id']."\">".$language_fisse[$row['nome']]."</label> ";
    }

    if ($tipo=="multi")
    echo "<select multiple=\"multiple\" data-tit=\"".$language_fisse['scegli_motivazione']."\" data-sel=\"".$language_fisse['motivazione_scelte']."\" class=\"multisel\" name=\"Motivazione[]\" >".$returnQuery."</select>";
    elseif ($tipo=="select")
    echo "<select name=\"Motivazione[]\" class=\"ui-select\"><option value=\"0\">".$language_fisse['scegli_motivazione']."</option>\n".$returnQuery."</select>";
    elseif ($tipo=="radio" || $tipo=="checkbox")
    echo $returnQuery;
    }


    C'e' inoltre un problema che non riesco a risolvere...la parte del codice "PREZZO" ha dei comandi if/else impostati per cui se la voce "da" � uguale a "0" restituisce "Fino a:" pero' nei fatti se impostato cos� il codice restituisce tutti gli immobili seza applicare il filtro per il prezzo superiore impostato....

    Spero davvero di ricevere aiuto.....

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Forse cosi (E' solo una bozza non ho guardato tutto il codice).

    Codice PHP:
    function cerca_prezzo ($nome_campo)
     {
     global 
    $conn$_REQUEST$language_fisse$fasciaprezzoA$fasciaprezzoV;
     if (!isset(
    $_REQUEST[''.$nome_campo.''])) $valore_form=""; else $valore_form $_REQUEST[''.$nome_campo.''];
     if (
    $_REQUEST['motivazione'] == 'AFFITTO' ) {
      
    $fasciaprezzo $fasciaprezzoA;
     } else {
      
    $fasciaprezzo $fasciaprezzoV;  
     }
     
     echo 
    "<select name=\"".$nome_campo."\" class=\"ui-select\">";
     echo 
    "<option value=\"0\">".$language_fisse['scegli_prezzo']."</option>";
     foreach (
    $fasciaprezzo AS $key=>$value)
     {
     if (
    $valore_form == $key$selezione "selected"; else $selezione "";
     if (
    $value['a']==0)
     
    $etichetta $language_fisse['oltre']." ".NUMERO($value['da'],'pr');
     elseif (
    $value['da']==1)
     
    $etichetta $language_fisse['fino_a']." ".NUMERO($value['a'],'pr');
     else
     
    $etichetta $language_fisse['da']." ".NUMERO($value['da'],'pr')." ".$language_fisse['a']." ".NUMERO($value['a'],'pr');
     echo 
    "<option value=\"".$key."\" ".$selezione.">".ucfirst($etichetta)."</option>";
     }
     echo 
    "</select>";
     } 
    Codice PHP:
     /*array cerca limiti*/
     
    $fasciaprezzoA[1]['da'] = "1"
     
    $fasciaprezzoA[1]['a'] = "500";
     
    $fasciaprezzoA[2]['da'] = "501";
     
    $fasciaprezzoA[2]['a'] = "1500";
     
     
    $fasciaprezzoV[1]['da'] = "1501";
     
    $fasciaprezzoV[1]['a'] = "50000";
     
    $fasciaprezzoV[2]['da'] = "50000";
     
    $fasciaprezzoV[2]['a'] = "250000";
     
    $fasciaprezzoV[3]['da'] = "250000";
     
    $fasciaprezzoV[3]['a'] = "500000";
     
    $fasciaprezzoV[4]['da'] = "500000";
     
    $fasciaprezzoV[4]['a'] = "0"
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2017
    Messaggi
    6
    Provo al volo e ti dico se funziona...se funziona ti offro una bella birra! Ovunque tu sia!

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2017
    Messaggi
    6
    C'e' qualche problema...in pratica a prescindere se viene selezionato affitto o vendita visualizza sempre e soltanto le fasce di prezzo di Vendita...ad intuito...potrebbe dipendere dal fatto che il comando if impostato con == AFFITTO sia sbagliato? Nel senso che proprio == AFFITTO sia l'errore? non sono riuscito a capire nel codice relativo alla motivazione come distingue vendita da affitto...

    Come potrei modificare il tuo codice con un if impostato su scelta 1/2? in pratica sul codice php che gestisce gli immobili è impostato come scelta "1" la motivazione VENDITA e scelta "2" l'affitto. Come si puo' scrivere il codice facendo riferimento al "2" invece che ad "AFFITTO"?
    Ultima modifica di kkfraxx; 01-08-2017 a 11:57

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2017
    Messaggi
    6
    e credo ci sia anche da modificare questo...


    /*prezzo select*/
    (isset($_REQUEST['Prezzo']) ? $prezzo=pulisciLogin($_REQUEST['Prezzo']) : $prezzo="" );
    if ($prezzo!="" AND $prezzo!="0")
    {
    $prezzo_da = $fasciaprezzo[$prezzo]['da'];
    $prezzo_a = $fasciaprezzo[$prezzo]['a'];

    $where .= " AND ( ((I.Prezzo_Richiesto >= '".$prezzo_da."') AND (I.Prezzo_Richiesto <= '".$prezzo_a."')) OR ((I.Prezzo_Richiesto2 >= '".$prezzo_da."') AND (I.Prezzo_Richiesto2 <= '".$prezzo_a."')) )";

    $_SESSION['campiCerca']['Prezzo'] = $prezzo;
    }


    mi sa che qua la birra diventa una cena....

  6. #6
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Ti basta rimpiazzare AFFITTO con il valore che corrisponde.
    Ultima modifica di badaze; 01-08-2017 a 12:59
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2017
    Messaggi
    6
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Ti basta rimpiazzare AFFITTO con il valore che corrisponde.
    Le ho provate tutte ma sono ad un punto morto...
    Non so da cosa puo' dipendere ma nei fatti...con linguaggio spicciolo del comando if/else funziona solo la parte else.
    Mi spiego meglio...il comando completo è:

    if ($_REQUEST['Motivazione'] == 'Affitto') {
    $fasciaprezzo = $fasciaprezzoA;
    } else {
    $fasciaprezzo = $fasciaprezzoV ;
    }

    Cosi impostato restituisce sempre la $fasciaprezzoV a prescindere dalla motivazione selezionata (anche se il campo motivazione viene lasciato vuoto) se sostituisco $fasciaprezzoV con $fasciaprezzoA restituisce solo la fascia prezzo A....

  8. #8
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Se fai un print $_REQUEST['Motivazione']; prima dell'if cosa esce ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2017
    Messaggi
    6
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Se fai un print $_REQUEST['Motivazione']; prima dell'if cosa esce ?
    ...ho premesso che sono una capra....mi scriveresti il codice da incollare?

  10. #10
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Codice PHP:
    print $_REQUEST['Motivazione']; 
    if (
    $_REQUEST['Motivazione'] == 'Affitto') {
      
    $fasciaprezzo $fasciaprezzoA;
     } else {
      
    $fasciaprezzo $fasciaprezzoV ;  
     } 
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.