Newsgroup: it.comp.www.php
Titolo: Funzione per le select

Salve a tutti
le mie web form hanno diversi moduli con select dinamiche
c'� una funzione per cui ogni volta mi trovo a creare la select
attulamente faccio cosi:
<select class="createdate" name='campione_fornitore' id='fornitore'>
<?php
       $sql_fornitore='SELECT * FROM fornitori_est ORDER BY fornitore ';
    $res_fornitore = mysql_query($sql_fornitore) or die('Errore: ' . 
mysql_error());
    while ($row_fornitore = mysql_fetch_array($res_fornitore)){
        if($row_fornitore['operatore_id'] == $xeri_fornitore) {
        $sel = 'selected="selected"';
     } else {
       $sel = ' ';
        }
      echo '<option value="'.$row_fornitore['fornitore_id'].'" 
'.$sel.'>'.$row_fornitore['fornitore'].'</option>' . "\n";
       }
?>
              </select>
mi ritrovo sempre la pagina piena di codice, esiste una possibilit� che 
tramite una sola funzione mi creo delle select all'occorrenza?


wrote:

function CreateSelect($query, $attrib = array(), $selected = false)
{
	$code	= '<select';
	foreach($attrib as $key => $value)
		$code .= "$key=\"" . AddSlashes($value) . "\"";
	$code	.= '>';
	$exec	= mysql_query($query) or die ('CreateSelect failed: ' 
			. mysql_error());
	while($row = mysql_fetch_array($exec))
	{
		$s = ($row[0] === $selected) ? ' selected="selected"' :
'';
		$code .= <<<ROW
<option value="$row[0]"$s>$row[1]</option>
ROW;
	}
	$code	.= '</select>';
	mysql_free_result($exec);
	return $code;
}
...e poi usi qualcosa come (N.B. non ti da' lo stesso risultato per via
di quel xeri_fornitore e del fatto che selezioni per un campo che *NON*
fa parte di quelli esposti dalla <select>!)
<?= CreateSelect('SELECT * FROM fornitori_est ORDER BY fornitore;',
array("class"=>"createdate", 'name'=>'campione_fornitore',
'id'=>'fornitore'), isset($_REQUEST['campione_fornitore') ?
$_REQUEST['campione_fornitore') : false); ?>
...non e' che poi faccia tutto questo mondo di differenza :-)
Leonardo
-- 
Linten addie toorin addie,
Linten addie toorin ee,
Linten lowrin lowrin lowrin,
The barnyards of Delgaty

Conference wrote:

Potresti provare a scomodara AJAX, ma in questo caso togli da una parte ed
aggiungi dall'altra (per non contare l'aumento della complessit�). In ogni
caso perderesti in prestazioni...
-- 
g4b0, linux user n. 369000
http://gabo.homelinux.com

selectStyle.">";
		$str[] = "<option value=''></option>";
		if(is_array($array)){
			for($i=0; $i < count($array); $i++){
				if(strtolower($array[$i]) == strtolower($val)){$selected = "
selected='selected'";}else{$selected = "";}
				$str[] = "<option value='".$array[$i]."'".$selected.">".$array
[$i]."</option>";
			}
		}
		$str[] = "</select>";
		return implode("\n",$str);
	}
	function get(){
		$fieldResult = mysql_query("SHOW COLUMNS FROM ".$this->tableName);
		while($f = mysql_fetch_assoc($fieldResult)){
			if($f['Field'] == $this->fieldName){
				$setStr = $f['Type'];
			}
		}
		$setStr = str_replace("set(","",$setStr);
		$setStr = str_replace(")","",$setStr);
		return $this->dbGetFieldSelect($this->fieldName,$this->selectedValue,
$setStr);
	}
}
che richiamo cosi:
<?php
$select = new createFieldSelect;
$select->setClass("dbSelect");
$select->setStyle("font: normal 8pt Arial;");
$select->set($cfg['Spedizionieri'],"spedizionieri","personal");
echo $select->get();
?>
mi da questo errore:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL
result resource in C:\Program Files\xampp\htdocs\Intranet
\scheda_import_add.php on line 415
la riga 415 è questa: if($f['Field'] == $this->fieldName){
che errore è?