warning: Invalid argument supplied for foreach() in D:\SERVERWEB\www\Siti_PHP\drupal-6.18ARCA24\modules\candidati\candidati.module on line 3228.
Sapreste dirmi dove sbaglio nello sviluppo di questo codice?
................hook theme impostato
................hook menu impostato
function candidati_show_candidativisible_admin() {
$form['#submit'][] = 'candidati_show_candidativisible_admin_submit';
$result = db_query("SELECT uid, username, cognome, nome, visible FROM {candidati}");
//$query = "SELECT uid, username, cognome, nome, visible FROM {candidati}";
//$result = pager_query($query, 50);
while ($row = db_fetch_object($result)){
$data = array($row->uid, $row->username, $row->cognome, $row->nome);
$form['rows'][$row->uid]['data'] = array('#type' => 'value', '#value' => $data);
$form['rows'][$row->uid]['visible-'.$row->uid] = array(
'#type' => 'checkbox',
'#default_value' => $row->visible,
);
}
$form['submit']=array(
'#type'=>'submit',
'#value'=>t('Salva cambiamenti'),
);
$form['#theme'] = 'candidati_visible_admin_drawform';
return $form;
}
function theme_candidati_visible_admin_drawform($form) {
foreach($form['rows'] as $uid => $row){ // <<<<-------------------------- riga 3228
if (intval($uid)){
$this_row = $row['data']['#value'];
$this_row[] = drupal_render($form['rows'][$uid]['visible-'.$uid]);
$table_rows[] = array('data'=>$this_row, 'class'=>'draggable');
}
}
$header = array("ID", "Username", "Cognome", "Nome", "Visibile");
$output .= theme('table', $header, $table_rows, array('id'=>'candidativisible-table'));
//$output .= theme('pager', NULL, 50, 0);
$output .= drupal_render($form);
return $output;
}
function candidati_show_candidativisible_admin_submit($form, &$form_state) {
foreach($form_state['values'] as $key => $data){
$uid = str_replace('visible-', '', $key);
db_query("UPDATE {candidati} SET visible=%d WHERE uid=%d", $data, $uid);
}
}
Ciao,
nel mio caso di solito questo problema si propone quando l'array è vuoto, quindi io controllerei tramite phpmyadmin che le query che stai facendo sono corrette (Molte volte mi scordo delle virgole etc etc).
Seconda cosa farei un watchdog("debug",print_r( {array nelle funzioni} ,true),array(),WATCHDOG_NOTICE) e guarderei se gli array sono vuoti o meno.
Spero di esserti stato utile.
Ciao,
Aran
--
Il saggio non è colui che sa tutto, ma colui che sa dove trovare le risposte
Grazie per la risposta ma ora funziona cambiando la riga:
$table_rows[] = array('data'=>$this_row, 'class'=>'draggable');
con
$table_rows[] = array('data'=>$this_row);
Ciao
Meglio così :-)
--
Il saggio non è colui che sa tutto, ma colui che sa dove trovare le risposte