Pagina 1 di 1

Quella dannata provincia di Agrigento

Inviato: 08/09/2006, 19:41
da Manah
Salve a tutti!
Inserendo le province nel database, se un cliente prova a registrarsi, sbaglia l'immissione di un dato (e riceve messaggio d'errore), il modulo resta precompilato con i dati che aveva immesso, tranne che per un campo: la provincia, che si setta su Agrigento.
Già un amico sul forum risolveva così, modificando create_account.php:
Angelo ha scritto:Io ho risolto mettendo questo :

Codice: Seleziona tutto

$zones_array = array(array('id' => '','text' => PULL_DOWN_DEFAULT));
al posto di :

Codice: Seleziona tutto

$zones_array = array();
L'inconveniente poco "pulito" è che questa modifica sostituisce la preselezione di Agrigento con un generico "SELEZIONA". Questo vuol dire che se il cliente non se ne accorge (e non se ne accorge quasi MAI) riceve un ulteriore messaggio d'errore per la provincia, con l'invito a selezionarla. Insomma, un passaggio in più per il povero utente stressato.

Secondo voi, c'è modo di fare memorizzare al campo "provincia" l'immissione precedente, senza che l'utente debba farlo 44 volte?

Grazie, amici!

Re: Quella dannata provincia di Agrigento

Inviato: 08/09/2006, 21:59
da marcus
Manah ha scritto:Salve a tutti!
Inserendo le province nel database, se un cliente prova a registrarsi, sbaglia
....
Il campo 'zone_id' deve essere presente nelle variabili POST quando la pagina viene riproposta.

Se è presente prova a forzare la zona/provincia di default:

Codice: Seleziona tutto

tep_draw_pull_down_menu('zone_id', $zones_array, $zone_id)


Saluti
Marcus

Inviato: 09/09/2006, 10:34
da Manah
Scusa la domanda, Marcus... sai più o meno qual'è il codice che si occupa di questo comportamento? Non so proprio dove inserirla, quella riga!
Grazie.

Inviato: 09/09/2006, 20:20
da marcus
Manah ha scritto:Scusa la domanda, Marcus... sai più o meno qual'è il codice che si occupa di questo comportamento? Non so proprio dove inserirla, quella riga!
Grazie.
E' la funzione che visualizza il menu pull-down delle provincie.
La trovi nel file create_account.php.

Prova a modificarla da:

Codice: Seleziona tutto

tep_draw_pull_down_menu('zone_id', $zones_array)
a:

Codice: Seleziona tutto

tep_draw_pull_down_menu('zone_id', $zones_array, $zone_id)
Saluti
Marcus

Inviato: 11/09/2006, 11:21
da Manah
Intanto grazie per la precisazione, per un newbbio come me è indispensabile.
E poi scusami tanto, ho inserito il tuo codice e non ho sortito risultati, così ho fatto delle prove più approfondite (avrei dovuto farle prima!).
Attualmente il codice è il seguente:

Codice: Seleziona tutto

<?php
    if ($process == true) {
      if ($entry_state_has_zones == true) {
        $zones_array = array(array('id' => '','text' => PULL_DOWN_DEFAULT));
        $zones_query = tep_db_query("select zone_name from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country . "' order by zone_name");
        while ($zones_values = tep_db_fetch_array($zones_query)) {
          $zones_array[] = array('id' => $zones_values['zone_name'], 'text' => $zones_values['zone_name']);
        }
        echo tep_draw_pull_down_menu('state', $zones_array);
      } else {
        echo tep_draw_input_field('state');
      }
    } else {
      echo tep_draw_input_field('state');
    }

    if (tep_not_null(ENTRY_STATE_TEXT)) echo ' <span class="inputRequirement">' . ENTRY_STATE_TEXT;
?>
Ho provato l'inserimento di $zone_id sia in tep_draw_pull_down_menu che nei due tep_draw_input_field, ma ottengo lo stesso risultato, e cioé:
partendo dal presupposto che il cliente inserisce tutti i campi correttamente (compresa la provincia) meno uno; che la provincia va inserita inizialmente in un campo e non scelta in un menu a tendina:
a) se inserisce la provincia per esteso e con la maiuscola iniziale, allora in caso di errore viene riproposta correttamente
b) se inserisce solo la sigla o minuscolo, viene riproposto il campo SELECT nel menu a tendina!
Aggiungo che in caso di prima immissione (con tutti i dati corretti al primo tentativo, intendo) il sistema accetta sia la sigla (CT, ad esempio) che il minuscolo iniziale.

Boh?!

Inviato: 11/09/2006, 18:45
da marcus
Prova ad istallare l'ottima contrib: Country-State Selector.

Saluti
Marcus

Inviato: 11/09/2006, 18:54
da Manah
Ehm... avevo già provato l'ottima contrib, maaaa... vedi un po':
http://forums.oscommerce.com/index.php? ... t&p=930201

Inviato: 17/09/2006, 13:48
da lord_k3y
Sei riuscito a risolvere? :roll:

Inviato: 18/09/2006, 9:54
da Manah
lord_k3y ha scritto:Sei riuscito a risolvere? :roll:
Ehm... no. Mi sto dedicando ad aspetti più importanti, attualmente. Se risolvo cercherò di ricordarmi di postare qui la soluzione :wink:

Re: Quella dannata provincia di Agrigento

Inviato: 20/12/2008, 15:03
da eros23
qualcuno è riuscito a risolvere questo problema??