Problema drop-down box

samurai.sette

Utente Attivo
17 Dic 2015
235
6
18
Ciao a tutti.

Vorrei chiedervi una cosa: in una pagina PHP ho un drop-down box contenente una lista di X elementi ed un bottone. Dopo aver scelto un qualsiasi elemento dal drop-down box e cliccato sul bottone, sul drop-down box torna a comparire il primo elemento della lista.

La mia domanda è questa: è possibile far rimanere l'elemento scelto? Se si, come si fa?

Ciao, grazie.
 

samurai.sette

Utente Attivo
17 Dic 2015
235
6
18
Ciao The-Night. Nella mia pagina ho creato una funzione che mi estrae i nomi delle colonne di una tabella di un database e me le inserisce in un drop-down.
Quando scelgo il nome di una colonna e clicco il bottone la pagina si aggiorna e nel drop-down ricompare il nome della prima colonna della tabella ma vorrei che rimanesse il nome da me scelto.

Questo è il codice che ho scritto per inserire i nomi delle colonne nel drop-down:

PHP:
  function dropdown () 
  {	  
	  $mydata = mysql_query("SHOW COLUMNS FROM tabella");
	  
	  while ($record = mysql_fetch_array($mydata))
	  {
	    echo '<option value='.$record[0].'>'.$record[0].'</option>';
	  }
 

The-Night

Utente Attivo
18 Ott 2015
59
0
6
Ciao, io uso una sessione nella quale è salvata l'opzione scelta.

PHP:
<?php
session_start();
$SelOption = $_SESSION['Option'];

function dropdown () {
  $mydata = mysql_query("SHOW COLUMNS FROM tabella");
  
  while ($record = mysql_fetch_array($mydata)) {
    $Option = $record[0];
    echo "<option value='$Option' ".($SelOption == $Option ? ' selected' : '')." >$Option</option>";
  }
}
?>

Adesso sicuramente hai un pulsante (Bottom) che ricava l'opzione scelta a la elabora.

Fagli salvare l'opzione in una sessione
PHP:
  session_start();
  $Selezionato = $_POST['Option'];
  $_SESSION['Option'] = $Selezionato;

al refresh della pagina dovresti avere l'opzione salvata nel drop-down.

Fammi sapere se hai capito, in caso contrario copia qui il sorgente di tutta la pagina che te lo sistemo.
 

samurai.sette

Utente Attivo
17 Dic 2015
235
6
18
Ciao The-Night. Ho provato il tuo codice ma mi genera due errori. Sicuramente sono io che sto sbagliando qualcosa e non me ne sto rendendo conto. Ti posto di seguito il sorgente della pagina che ho scritto e ti indico dove mi segnala gli errori.
P.S.: Nella pagina ho inserito soltanto un drop-down box ed un bottone.
Scusa te ti creo disturbo, se mi riesci a dare una mano a risolvere questo problema te ne sarei molto grato. Ciao, grazie.

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Untitled 1</title>
</head>

<body>  

<form method="post">
	
	<select name="Option" style="width: 127px">
	<option></option>
	</select><br />
	<br />
	<input name="Bottom" style="width: 124px" type="submit" value="submit" /><br />
	
</form>

<?php

  session_start();
  $SelOption = $_SESSION['Option']; // ERRORE N°1: Notice: Undefined index: Option in ...
  
// FACCIO LA CONNESSIONE AL SERVER ED AL DATABASE
  
  $con = mysql_connect ("localhost", "root","") or die ("Connessione al server fallita!!!".mysql_error()); 
   
  $db = mysql_select_db ("monitoraggio_prova", $con); 
   
  if (!$db) 
  { 
    die ("Connessione al database login fallita!!!".mysql_errore()); 
  }  

  function dropdown ()
  {
    $mydata = mysql_query("SHOW COLUMNS FROM tabella");
  
    while ($record = mysql_fetch_array($mydata))
    {
      $Option = $record[0];
      echo "<option value='$Option' ".($SelOption == $Option ? ' selected' : '')." >$Option</option>";
    }
  }

  $Selezionato = $_POST['Option']; // ERRORE N°2: Notice: Undefined index: Option in ...
  $_SESSION['Option'] = $Selezionato;

?>

</body>

</html>
 

The-Night

Utente Attivo
18 Ott 2015
59
0
6
diciamo che hai pasticciato un po...

Il bottone non è collegato a nulla?

ti da errore perché, non hai messo nulla nella sessione.
 

The-Night

Utente Attivo
18 Ott 2015
59
0
6
Prova così, spero di non aver fatto errori.

PHP:
<form method="post">
<select name="Option" style="width: 127px">
<?php

session_start();
$SelOption = $_SESSION['Option'];

$con = mysql_connect ("localhost", "root","") or die ("Connessione al server fallita!!!".mysql_error());

$db = mysql_select_db ("monitoraggio_prova", $con);

if (!$db) {
  die ("Connessione al database login fallita!!!".mysql_errore());
}

$mydata = mysql_query("SHOW COLUMNS FROM tabella");

while ($record = mysql_fetch_array($mydata)) {
  $Option = $record[0];
  echo "<option value='$Option' ".($SelOption == $Option ? ' selected' : '')." >$Option</option>";
}

?>
</select>
<div>
<input type="submit" value="Leggi" name="Leggi_Opzione" title="Leggi"/>
</div>
</form>

<?php
if ($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['Leggi_Opzione'])) {
  session_start();
  $Selezionato = $_POST['Option'];
  $_SESSION['Option'] = $Selezionato;
}
?>
 

samurai.sette

Utente Attivo
17 Dic 2015
235
6
18
Ciao The-Night. Ho appena riprovato il tuo codice e questa volta non mi da più errori [ho solo dovuto cancellare il secondo session_start(); perchè non si può avviare due volte la sessione].
Comunque il codice funziona in parte nel senso che quando scelgo qualcosa dal drop-down, non rimane visualizzato quello che ho scelto ma me lo cambia con un altro a caso.
Per favore aiutami a risolvere questo mio problema e scusami se ti sto assillando!!! Ciao
 

The-Night

Utente Attivo
18 Ott 2015
59
0
6
ma che dici, posso avviare la sessione anche 20.000 volte, forse per questo sbaglia.

PHP:
<form method="post">
<select name="Option" style="width: 127px">
<?php

session_start();
$SelOption = $_SESSION['Option'];

$con = mysql_connect ("localhost", "root","") or die ("Connessione al server fallita!!!".mysql_error());

$db = mysql_select_db ("monitoraggio_prova", $con);

if (!$db) {
  die ("Connessione al database login fallita!!!".mysql_errore());
}

$mydata = mysql_query("SHOW COLUMNS FROM tabella");

while ($record = mysql_fetch_array($mydata)) {
  $Option = $record[0];
  echo "<option value='$Option' ".($SelOption == $Option ? ' selected' : '')." >$Option</option>";
}

?>
</select>
<div>
<input type="submit" value="Leggi" name="Leggi_Opzione" title="Leggi"/>
</div>
</form>

<?php
if ($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['Leggi_Opzione'])) {
  $Selezionato = $_POST['Option'];
  session_destroy();
  session_start();
  $_SESSION['Option'] = $Selezionato;
}
?>

adesso distrugge la prima sessione, vedi se funziona, non è possibile che seleziona a caso se lo fa c'è qualcosa di sbagliato.
Io non posso provarlo, anche perché non ho accesso al tuo database.

Fammi sapere se funziona.
 

samurai.sette

Utente Attivo
17 Dic 2015
235
6
18
Ciao The-Night. Niente da fare. Il problema persiste. Non capisco proprio dove sia il problema anche perchè non vedo nessuna connessione tra quello che seleziono io e quello che mi scrive dopo. :dipser: :dipser:
 

The-Night

Utente Attivo
18 Ott 2015
59
0
6
dimmi una cosa, se aggiorni la pagina dopo che hai selezionato e premuto il bottone, sbaglia ancora?
 
Ultima modifica:

samurai.sette

Utente Attivo
17 Dic 2015
235
6
18
Ciao The-Night. Se io provo a selezionare qualcosa dal drop-down e poi clicco il bottone sbaglia;se aggiorno la pagina e provo a riselezionare qualcosa e riclicco il bottone continua a sbagliare
 

The-Night

Utente Attivo
18 Ott 2015
59
0
6
Scusami, ma non potendolo provare non mi sono accorto di un probabile errore.

PHP:
<form method="post">
<select name="Option" style="width: 127px">
<?php

session_start();
$SelOption = $_SESSION['Option'];

$con = mysql_connect ("localhost", "root","") or die ("Connessione al server fallita!!!".mysql_error());

$db = mysql_select_db ("monitoraggio_prova", $con);

if (!$db) {
  die ("Connessione al database login fallita!!!".mysql_errore());
}

$mydata = mysql_query("SHOW COLUMNS FROM tabella");

while ($record = mysql_fetch_array($mydata)) {
  $Option = $record;
  echo "<option value='$Option' ".($SelOption == $Option ? ' selected' : '')." >$Option</option>";
}

?>
</select>
<div>
<input type="submit" value="Leggi" name="Leggi_Opzione" title="Leggi"/>
</div>
</form>

<?php
if ($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['Leggi_Opzione'])) {
  $Selezionato = $_POST['Option'];
  session_destroy();
  session_start();
  $_SESSION['Option'] = $Selezionato;
}
?>

penso che il problema sia
PHP:
$record[0]
l'ho cambiato con $record prova a vedere se cambia qual'cosa.
 

samurai.sette

Utente Attivo
17 Dic 2015
235
6
18
Ciao The-Night.

Non so se il problema sia lì. Se correggiamo quella riga, nel drop-down compare solo il testo "Array" per diverse volte (6 per l'esattezza).
 

zorro

Utente Attivo
20 Ott 2014
322
21
28
ROMA
cIao samurai.sette,
non ho letto tutti i post, ma credo di aver capito dov'è il problema. Se prima crei il menù a tendina e poi, una volta creato, vai a leggere il DB per popolarlo, ogni volta che effetti una scelta, lui ti ricarica la pagina, e quindi ti ripropone il menù vuoto. Devi inserire la lettura tra i tag SELECT
del menù. Tempp fa ho avuto un problena simile: se mi dai un po' di tempo faccio qualche prova e ti faccio sapere. Intanto ti consiglierei dii creare due pagine separate: una, HTML per il form, e una, PHP, che processerà i dati passatigli dal form
Ciao


Zorro:byebye::byebye:
 

samurai.sette

Utente Attivo
17 Dic 2015
235
6
18
Ciao zorro, grazie mille per l'aiuto e grazie mille anche a The-Night. Spero proprio di riuscire a risolvere il mio problema.Ciao .
 

zorro

Utente Attivo
20 Ott 2014
322
21
28
ROMA
CiaO samurai.sette,
ho fatto delle prove e questo è il codice: sono entambi file PHP. Ho creato una tabella commposta da 4 campi: ID_CLI, COGNOME, NOME e INDIRIZZO.


PHP:
<?php

//connessione al server DB
$link_connessione=mysql_connect("localhost",".......",".............") or die ("Connessione impossibile");
//Selezione del database
$db=mysql_select_db("................", $link_connessione) or die ("Database inesistente!");

$mydata = mysql_query("SHOW COLUMNS FROM CLIENTI");

echo '<form action="contrform.php" method="post">';
echo '<select name="scelta">';
echo '    <option>Effettua una scelta</option>';

while ($record = mysql_fetch_array($mydata)) {
       echo '<option value='.$record[0].'>'.$record[0].'</option>';
} 

echo '</select>';

echo '<br><input type="submit" name="invia" value="Invia i dati">';
echo '</form>';
?>


.....il codice del file di controllo

PHP:
<?php

$campo = $_POST['scelta'];

echo 'Il nome del campo passato è:'.$campo;

?>


un po' stlizzato, ma era questo che intendevi??


Zorro:byebye:
 

samurai.sette

Utente Attivo
17 Dic 2015
235
6
18
Ciao zorro. Grazie per l'aiuto, ma purtroppo non era questo che intendevo.

Quello che vorrei è un'altra cosa: quando clicco sul bottone "Invia i dati" vorrei che sul drop-down rimanesse scritto ciò che ho selezionato. Ad esempio se ho selezionato il nome Francesco e clicco il bottone vorrei che rimanesse scritto Francesco e non ritornasse la scritta "Effettua una scelta".
 

zorro

Utente Attivo
20 Ott 2014
322
21
28
ROMA
Ciao,
allora, in questo caso e come suggerito da The Nighth, devi usare le SESSION ma, perdonami, ma non riesco a capire esattamente ciò che intendi fare.
Quando lanci il programma, ti compare la scritta 'EFFETTUA UNA SCELTA', l'utente clicca sulla freccia, si apre la tendina con (nel mio caso) ID, COGNOME, NOME e INDIRIZZO; sceglie, ad es., NOME (che prende quindi il posto di 'EFFETTUA UNA SCELTA' nel menu). Premendo poi 'INVIA' i dati vengono inviati al programma di controllo e quindi non vedi più il menù. Perdonami ma non capisco cosaintendi con ' vorrei che rimanesse scritto Francesco e non ritornasse la scritta "Effettua una scelta". A meno che tu non vogli che, una volta rilanciato il programma al posto di 'EFFETTUA UNA SCELTA' riporti l'ultima scelta effettuata (nel mio caso NOME)


Zorro
 

samurai.sette

Utente Attivo
17 Dic 2015
235
6
18
Ciao zorro.

Nel programma che mi avevi scritto in precedenza inviavi i dati ad una seconda pagina che avevi chiamato "contrform.php". In quel caso, ovviamente, non potevo vedere più il menù a tendina.
Però lavorando sempre nella stessa pagina vorrei effettuare la scelta dal drop-down e cliccare il bottone e, come ho detto in precedenza, vorrei che rimanesse scritto ciò che ho selezionato.
Allo stato attuale se io effettuo una qualsiasi scelta e clicco il bottone la pagina si aggiorna e nel drop-down ricompare "Effettua una scelta" mentre vorrei che rimanesse scritto quello che ho scelto.

Ciao.
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
G Piccolo problema con il Drag&Drop jQuery 0
D Drag & drop HTML5. Problema con ie e chrome! HTML e CSS 1
I Sto progettando nuovi siti utilizzando bootstrap e devo dire funziona bene, l'unico problema e la maschera -moz- HTML e CSS 0
K Problema form update PHP 2
O problema con dvr dahua xvr5116 IP Cam e Videosorveglianza 0
S Problema nel ciclare un json Javascript 0
G Problema con Xampp Web Server 1
andrea barletta Problema con miniature comandi Photoshop 0
I problema con alice Posta Elettronica 0
K Problema Inner join PHP 1
F firefox problema http Linux e Software 0
N Problema con position absolute e overflow HTML e CSS 4
E Problema jquery Success jQuery 2
L Problema con inner join PHP 11
K [php] Problema con inner join PHP 4
E problema selezione sfumata Photoshop 2
K [PHP] Problema con variabili concatenate. PHP 1
A Problema filtro fluidifica Photoshop Photoshop 1
H Problema Bordi Scontorno Photoshop 1
O problema con query PHP 4
R Problema installazione Realtek WiFi USB rtl8821 Reti LAN e Wireless 0
I problema con 2 account Posta Elettronica 1
L problema collegamento file css con html HTML e CSS 1
Y Problema percorso file in rete PHP 1
N Problema SEO "L'URL non si trova su Google" SEO e Posizionamento 4
E Problema accesso a file con app sviluppata con MIT APP INVENTOR 2 Sviluppo app per Android 0
P Problema acquisizione clienti Webdesign e Grafica 1
F NetBeans problema creazione progetto Java Windows e Software 0
M Problema con Try Catch PHP 0
C problema seo + cerco esperto SEO e Posizionamento 11
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
T PROBLEMA CON SESSIONI PHP 3
A Problema, non so, di scale() o transform, oppure altro? HTML e CSS 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
R problema con else PHP 0
T PROBLEMA CON ARRAY PHP 8
L problema con query select PHP 2
R Problema query con ricerca id numerico PHP 2
F Problema con risposta PHP 0
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 1
I PROBLEMA: Sostituzione sito XAMPP E-Commerce 0
T problema data 30/11/-1 PHP 0
L Problema RAM con Tomcat 8 Apache 0
napuleone problema con sort e asort PHP 4
Y Problema incolonnamento tabella PHP 7
S problema salvataggio immagini Photoshop 0
Z Problema con INT MySQL PHP 1
Z Problema database MySQL con XAMPP PHP 0
M Problema con controllo form in real time jQuery 6

Discussioni simili