Ciao a tutti. Ho creato un metodo che passandogli una variabile con il codice sql, (SELECT campo1, campo2 FROM tabella) esegue una select su una tabella, e crea un' array con i valori trovati eseguendo poi il return della stessa. L' array creata, la passo poi ad un altro metodo che crea delle options per una select html:
Quindi "da fuori" richiamo il metodo valorizzando una variabile e passandola al metodo che crea la select:
Questo è il metodo che crea la select html:
Insomma funziona tutto però lo posso utilizzare solo per creare select poichè, come potete vedere dal codice, nel metodo f_options_date() alla riga:
$var[] = array($row[$columns[0]], $row[$columns[1]]);
creo l' array con gli elementi che mi servono indicando manualmente l' indice dell' array $columns.
Io vorrei fare una cosa più variabile Ho provato a fare cosi nel while ma non funziona:
Mi da errore nel metodo f_get_select() alla riga:
$a .= "<option value='".$value[0]."'>" .$value[1]. "</option>\n";
Notice: Uninitialized string offset: 1 in C:\Program Files\xampp\htdocs\new_bs_site\class\c_html_form.php on line 71
immagino venga fuori un' array non compatibile o chissà che cosa...
Grazie 1000 a chi mi aiuta.
PHP:
//f_options_date() crea l' array
public function f_options_date($sql)
{ $var = array();
//Risultato della query
$result = mysqli_query($this->_link, $sql);
//Creo array con nomi colonne
$get_column = $result->fetch_fields();
foreach ($get_column as $column)
{
$columns[] = $column->name;
}
//eseguo il ciclo while e creo l' array
while($row = mysqli_fetch_array($result, MYSQL_ASSOC))
{
$var[] = array($row[$columns[0]], $row[$columns[1]]);
}
return $var;
}
Quindi "da fuori" richiamo il metodo valorizzando una variabile e passandola al metodo che crea la select:
PHP:
//memorizzo l' array
$type = $o_db->f_options_date("SELECT id_type, info FROM t_site_type");
//passo l' array al metodo che crea la select html e creo la select
$myselect = $o_html_form->f_get_select('select1', 'type', 'myclass', $type);
PHP:
public function f_get_select($w, $name, $class, $arr)
{
//Creo un' array contenente vari gruppi di input e le loro caratteristiche
$attributes_list = array(
"select1" => array("name" => $name,
"class"=> $class
)
//Poi ne creo altri
);
$a = "<select class=\"".$attributes_list[$w]["class"]."\" name=\"".$attributes_list[$w]["name"]."\"> \n";
//Elenco le options
foreach($arr as $key => $value)
{
for($i=0; $i<count($key); $i++)
{
//Creo le options
$a .= "<option value='".$value[0]."'>" .$value[1]. "</option>\n";
}
}
$a .= "</select> \n";
return $a;
}
$var[] = array($row[$columns[0]], $row[$columns[1]]);
creo l' array con gli elementi che mi servono indicando manualmente l' indice dell' array $columns.
Io vorrei fare una cosa più variabile Ho provato a fare cosi nel while ma non funziona:
PHP:
while($row = mysqli_fetch_array($result, MYSQL_ASSOC))
{
//Per quante colonne ha trovato
for($i=0; $i<count($columns); $i++)
{
$var[] = $row[$columns[$i]];
}
}
$a .= "<option value='".$value[0]."'>" .$value[1]. "</option>\n";
Notice: Uninitialized string offset: 1 in C:\Program Files\xampp\htdocs\new_bs_site\class\c_html_form.php on line 71
immagino venga fuori un' array non compatibile o chissà che cosa...
Grazie 1000 a chi mi aiuta.
Ultima modifica: