Newsgroup: it.comp.www.php
Titolo: Select in modifica dati

<select name='cliente' id='cliente'>
          <?php
			$cliente="SELECT * FROM clienti  " ;
			$result_cliente = mysql_query($cliente) or die("Errore: " .
mysql_error());
			while ($cliente_nome=mysql_fetch_array($result_cliente)){
				$cliente_id=$cliente_nome['clienti_id'];
				$cliente=$cliente_nome['cliente'];
				echo "<option value='$cliente_id'>$cliente</option>";
			}
		?>
        </select>
attualmente per inserire i dati utilizzo questa select,
ma in modifica del dato come faccio a richiamare il dato dalla query
(SELECT * FROM clienti  WHERE clienti_id = ... ) in evidenza ma che
comunque mi mantenga la lista della query per scegliere un altro dato?

jesol...@gmail.com
 ha scritto:

Prima del ciclo while valorizza una variabile con il valore contenuto
nel database.
All'interno del ciclo while utilizza un IF per confrontare il valore
della variabile definita in precedenza con $cliente_id. Se i valori
sono uguali, aggiungi l'attributo selected al tag option.
-- 
Vuoi distribuire il tuo sito web su CD/DVD?
Prova 
http://www.dwebpro.com/
Vuoi diventare un esperto analista PHP/MySQL?
Vieni a fare uno stage con noi: 
http://www.creativepark.it/stage/

 ha scritto nel 
messaggio news:6apsfdF...@mid.individual.net...


 
una cosa del genere
$selected=($cliente_id==$risultatato_di_SELECT_FROM_clienti_WHERE_clienti_id)?" 
selected='selected'":"";
/*se $cliente_id è uguale all'id ricercato $selected vale 
"selected='selected'", altrimenti è la stinga vuota*/
echo "<option value='$cliente_id'{$selected}">$cliente</option>";
ho usato l'operatore ternario
(se)?(allora):(altrimenti), ma si poteva usare un if
nella <select> la <option> che presenta l'attributo selected (che 
secondo gli standard dovrebbe essere valorizzata a "selected" ...) viene 
proposta come default. se l'attributo è presente in + <option> dipende 
dall'implementazione del browser (di norma l'ultimo scritto ha 
precedenza). ovvio che non dovrebbe accadere.
ciao

 ciao
<select name='cliente' id='cliente'>
          <?php
			$tipocliente2="SELECT * FROM clienti WHERE cliente_id=".
$cesta_cliente."" ;
			$cliente="SELECT * FROM clienti  " ;
			$result_cliente = mysql_query($cliente) or die("Errore: " .
mysql_error());
			$selected=($cliente_id==$cliente2)
			"selected='selected'":"";
			/*se $cliente_id è uguale all'id ricercato $selected vale
			"selected='selected'", altrimenti è la stinga vuota*/
			while ($cliente_nome=mysql_fetch_array($result_cliente)){
				$cliente_id=$cliente_nome['clienti_id'];
				$cliente=$cliente_nome['cliente'];
				echo "<option value='$cliente_id'>$cliente</option>";
			}
		?>
        </select>
ho fatto cosi ma mi da errore su questa riga "selected='selected'":"";
come correggo????????

 come correggo????????
andrebbe di seguito alla riga precedente (purtroppo non ci stava sulla 
sessa riga), ma ti sei perso anche il '?'

 come correggo????????
Manca un punto interrogativo.
$selected= ($cliente_id == $cliente2 ? 'selected' : "");
Inoltre ti manca la concatenazione della variabile $selected nell'echo 
dell'option.
	Francesco

 
Ed il controllo lo devi fare dentro al ciclo for, altrimenti come fai a 
vedere qual'e' l'option valida?
	Francesco

Francesco F ha scritto:

aggiungo che manca pure la stampa della variabile $selected dentro alla 
<option>


Corretto cosi ma ancora non va....
<select name='cliente' id='cliente'>
          <?php
			$cliente="SELECT * FROM clienti" ;
			$result_cliente = mysql_query($cliente) or die("Errore: " .
mysql_error());
			while ($cliente_nome=mysql_fetch_array($result_cliente)){
			    $cliente2="SELECT cliente_id FROM clienti WHERE cliente_id=".
$cesta_cliente."" ;
			    $selected= ($cliente_id == $cliente2 ? 'selected' : "");
			    $cliente_id=$cliente_nome['clienti_id'];
			    $cliente=$cliente_nome['cliente'];
			   echo "<option value='$cliente_id' selected='selected' >$cliente</
option>";
			}
		?>
        </select>

         </select>
Non vorrei essere scortese ma dal codice scritto emergono diverse lacune 
sul linguaggio
Nella stampa della riga option devi riportare anche la variabile 
$selected, inoltre il corretto uso delle virgolette/apici nel codice 
html. Riassumendo:
echo '<option value="' . $cliente_id . '" ' . $selected . '>' . $cliente 
. '<option>' . "\n";
Oppure se preferisci:
printf("<option value=\"%s\" %s>%s</option>\n", $cliente_id, $selected, 
$cliente);
	Francesco

         </select>
hope it helps

 
jesolo....@gmail.com
 ha scritto:

Dunque..
ecco le righe corrette...
<select name='cliente' id='cliente'>
          <?php
	$cliente="SELECT * FROM clienti" ;
	$result_cliente = mysql_query($cliente) or die("Errore: " .
mysql_error());
	$cliente2="SELECT cliente_id FROM clienti WHERE cliente_id=".
$cesta_cliente."" ;
	while ($cliente_nome=mysql_fetch_array($result_cliente)){
	    $selected=($cliente_id ==
$cesta_cliente)?"selected='selected'":"";
	    $cliente_id=$cliente_nome['clienti_id'];
	    $cliente=$cliente_nome['cliente'];
                   echo "<option value='$cliente_id' $selected >
$cliente</option>";
	}
	?>
        </select>
ma purtroppo........ non va...
:-/
sarò un rompipalle ma potrebbe essere uno script a tutti..
help me...

 
Scusa ma cosa significa non va?? Dà errore, non seleziona l'elemento 
corretto, mostra mele al posto delle pere?
Per prima cosa cerca di quotar meglio almeno il tuo mex risulterà più 
chiaro, poi a cosa serve la $cliente2? è un'intrusa, vero?
Se vuoi visualizzare tutti i clienti e selezionare il cliente il cui id 
è uguale a cesta_cliente, proviamo in questo modo:
<select name="cliente" id="cliente">
<?php
   $cliente='SELECT * FROM clienti;';
   $res_cliente = mysql_query($cliente) or die('Errore: ' .
mysql_error());
   while ($row_cliente = mysql_fetch_array($res_cliente)){
      if($row_cliente['clienti_id'] == $cesta_cliente) {
         $sel = 'selected="selected"';
      } else {
         $sel = ' ';
      }
      printf("<option value=\"%s\" %s>%s</option>\n", 
$row_cliente['clienti_id'], $sel, $row_cliente['cliente']); [1]
   }
?>
</select>
[1] Se proprio non digerisci il printf:
echo '<option value="' . $row_cliente['clienti_id'] . '" ' . $sel . '>' 
. $row_cliente['cliente'] . '</option>' . "\n";
	Francesco

 wrote:

Tutto ok ora!!!!!!
grazie mille a tutti dell'aiuto !