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 :)