ricaricare block_content() con passaggio di parametri dopo una SUBMIT

2 contenuti / 0 new
Ultimo contenuto
ricaricare block_content() con passaggio di parametri dopo una SUBMIT

Salve ho un problema con questo codice, ovvero, dopo aver inserito dei valori nella textarea e premuto il tasto submit, e quindi aver richiamato la funzione "function _module_message_form_submit($form, &$form_state) " , questa deve mandare il valore della textarea alla funzione function _VBILANCIO_block_content(), cosi da rifare la query col valore modificato e ricaricaricare la pagina con i nuovi record "filtrati".

QUALCUNO mi puo gentilmente aiutare, visto che sto da 2gg e non riesco a venirne a capo thx

<?php
   
global $anno_s;
//helper del modulo  nella sezione Aiuto
function VBILANCIO_help($section='') {
   
$output = '';
    switch (
$section) {
        case
"admin/modules#description":
       
$output = t("E il VBILANCIO delle varie associazioni");
        break;
    }
    return
$output;
}
function
VBILANCIO_perm() {
    return array(
'access content', 'access VBILANCIO', 'administer VBILANCIO', 'Tesoriere VBILANCIO','Vice VBILANCIO','Presidente VBILANCIO');
}
function
VBILANCIO_menu() {
   
$items = array();
   
$items[] = array('path' => 'VBILANCIO',
   
'title' => t('VISTA BILANCIO'),
   
'callback' => '_VBILANCIO_block_content',
   
'access' => user_access('access content'),
   
'type' => MENU_CALLBACK);
    return
$items;
}
function
VBILANCIO_block($op='list', $delta=0) {
    if (
$op == "list") {
       
$blocks[0]["info"] = t('VBILANCIO ASSOCIAZIONI');
        return
$blocks;
    } else if (
$op == "view" && user_access('access VBILANCIO')){
        switch (
$delta) {
            case
0:
               
$block['subject'] = 'VBILANCIO ASSOCIAZIONI';
               
$block['content'] = _VBILANCIO_block_content();
                break;
        }
        return
$block;
    }
}
//Creo blocco e mostro l'intera lista
//la variabile $anno_s deve ricevere il risultato della textarea, dopo che si e premuto il tasto submit
function _VBILANCIO_block_content() {
   
$page_content="";
    global
$user;
   
$id_utente;
   
$query = db_query("SELECT name FROM avdrupal_users WHERE uid= " .$user->uid);
    while (
$row = db_fetch_object($query)){
       
$id_utente= t($row->name);
    }
   
$nid_ass;
   
$query = db_query("SELECT nid FROM avdrupal_og_uid WHERE uid= " .$user->uid);
    while (
$row = db_fetch_object($query)){
       
$nid_ass = t($row->nid);
    }
   
$group_name;
   
$query = db_query("SELECT title FROM avdrupal_node WHERE nid= " .$nid_ass);
    while (
$row = db_fetch_object($query)){
       
$group_name=t($row->title);
    }
   
$query = db_query("SELECT * FROM bilancio WHERE ass='$group_name'");
   
$page_content.= t("<TABLE style= "height:85%, width:85%">");
   
$page_content.= t("<TR>");
   
$page_content.= t("<TH>ASSOCIAZIONE</TH>");
   
$page_content.= t("<TH>EVENTO</TH>");
   
$page_content.= t("<TH>DESCRIZIONE ENTRATA</TH>");
   
$page_content.= t("<TH>DESCRIZIONE USCITA</TH>");
   
$page_content.= t("<TH>ENTRATA</TH>");
   
$page_content.= t("<TH>USCITA</TH>");
   
$page_content.= t("<TH>DATA</TH>");
   
$page_content.= t("</TR>");    
    while (
$row = db_fetch_object($query)){
       
$page_content.= t("<TR>");
       
$page_content.= t("<TD>".$row->ass);
       
$page_content.= t("</TD>");
       
$page_content.= t("<TD>".$row->evento);
       
$page_content.= t("</TD>");
       
$page_content.= t("<TD>".$row->d_entrate);
       
$page_content.= t("</TD>");
       
$page_content.= t("<TD>".$row->d_uscite);
       
$page_content.= t("</TD>");
       
$page_content.= t("<TD>".$row->entrate);
       
$page_content.= t("</TD>");
       
$page_content.= t("<TD>".$row->uscite);
       
$page_content.= t("</TD>");
       
$page_content.= t("<TD>".$row->Data);
       
$page_content.= t("</TD>");
       
$page_content.= t("</TR>");
    }
   
$page_content.= t("</TABLE>");
   
//Lista che mostra i record dopo il filtro di anno_s
   
$query = db_query("SELECT * FROM bilancio WHERE ass='$group_name'");
   
$page_content.= t("<TABLE style= "height:85%, width:85%">");
   
$page_content.= t("<TR>");
   
$page_content.= t("<TH>ASSOCIAZIONE</TH>");
   
$page_content.= t("<TH>EVENTO</TH>");
   
$page_content.= t("<TH>DESCRIZIONE ENTRATA</TH>");
   
$page_content.= t("<TH>DESCRIZIONE USCITA</TH>");
   
$page_content.= t("<TH>ENTRATA</TH>");
   
$page_content.= t("<TH>USCITA</TH>");
   
$page_content.= t("<TH>DATA</TH>");
   
$page_content.= t("</TR>");    
    while (
$row = db_fetch_object($query)){
       
$data_bilancio= (string)$row->Data;
       
$data_b=substr($data_bilancio,0,4);
        if(
$data_b==(string)$anno_s){
           
$page_content.= t("<TR>");
           
$page_content.= t("<TD>".$row->ass);
           
$page_content.= t("</TD>");
           
$page_content.= t("<TD>".$row->evento);
           
$page_content.= t("</TD>");
           
$page_content.= t("<TD>".$row->d_entrate);
           
$page_content.= t("</TD>");
           
$page_content.= t("<TD>".$row->d_uscite);
           
$page_content.= t("</TD>");
           
$page_content.= t("<TD>".$row->entrate);
           
$page_content.= t("</TD>");
           
$page_content.= t("<TD>".$row->uscite);
           
$page_content.= t("</TD>");
           
$page_content.= t("<TD>".$row->Data);
           
$page_content.= t("</TD>");
           
$page_content.= t("</TR>");
        }
    }
   
$page_content.= t("</TABLE>");
   
$page_content .= drupal_get_form('_module_message_form');
    return
$page_content;
}
function
_module_message_form_submit($form, &$form_state) {
   
//global $anno_s;
   
$anno_s =$form_state['values']['anno'];
   
$form_state['rebuild']=TRUE;
   
drupal_set_message("Vista Anno: ".$anno_s);
}
// parti di blocco della veste grafica texarea e bottone
function _module_message_form() {
    
$form['anno'] = array(
       
'#type' => 'textarea',
       
'#title' => t('Anno data bilancio'),
       
'#cols' => 30,
       
'#rows' => 1,
       
'#resizable' => FALSE,
    );
   
//Submit button:
   
$form['submit'] = array(
       
'#type' => 'submit',
       
'#value' => t('FILTRA'),
   );
    return
$form;
}
?>

Se si tratta di passare solo un valore perchè non utilizzi le variabili di sessione? Io me la sono cavata così perchè la variabile di sessione rimane dopo il submit.

Ad esempio:
$_SESSION['datefrom'] = $datefrom;

$datefrom= $_SESSION['datefrom'];

unset($_SESSION['datefrom']);

Quindi la tua textarea:
'#default_value' => $_SESSION['datefrom'],

Spero di aver capito bene perchè, sinceramente non ho analizzato il tuo codice :)