Problema drop-down box

samurai.sette

Utente Attivo
17 Dic 2015
234
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
234
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
0
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
234
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
0
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
0
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
234
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
0
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
234
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
0
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
234
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
0
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
234
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
255
11
18
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
234
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
255
11
18
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
234
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
255
11
18
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
234
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
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
D problema php mysql PHP 1
D problema php mysql PHP 1
M Problema Wi-Fi Linux Linux e Software 0
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
Daniele_Carrara Problema Aperture Mailup Email Marketing 0
F PROBLEMA ACCESSO INSTAGRAM Discussioni Varie 0
R Problema connessione db PHP 7
M problema if PHP 2
G Problema con Get page PHP 4
N Problema passaggio variabili tra pagine PHP 4
P Problema con require once PHP 6
P Problema con i package Java 1
A Problema login con Safari PHP 14
F INDESIGN: problema esportazione esecutivo per la stampa con foto B/N Webdesign e Grafica 0
H problema carrello woocommerce PHP 2
S problema con css bootstrap3 HTML e CSS 4
M .load() problema con caricamenti dinamici di js Javascript 0
M Problema su query JOIN in tre tabelle PHP 0
S Problema esportazione tabelle Mysql in Excel PHP 0
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
M Problema su update di 3 tabelle PHP 1
T problema con select dinamica con jquery Javascript 0
A Problema checkout carrello php PHP 2
R Problema al server Domini 0
A Problema nel passare la variabile PHP 0
G Problema update di un database PHP 0
S Problema con spazi bianchi HTML e CSS 4
E Problema motore di ricerca FULL_TEXT PHP 0
Tommy03 Problema durata cookie PHP 5
A PROBLEMA: insert mysqli con dati Tagsinput Presentati al Forum 0
I PROBLEMA CODICE INSERTION SORT C C/C++ 2
I PROBLEMA CODICE C - INSERTION SORT Presentati al Forum 1
N Problema pennelli Photoshop Photoshop 0
Tommy03 Problema con z-index HTML e CSS 3
M Problema inserimento parole con apostrofo nel db PHP 5
C Problema con dati meteo xml XML 0
Y Problema visualizzazione PDF generato da fpdf PHP 1
S Problema con infrarossi videocamera IP Cam e Videosorveglianza 1
G Problema caricamento tabelle MySql da PhP PHP 0
V Problema con librerie allegro5 c++ C/C++ 1
P Problema concantenazione form Javascript 3

Discussioni simili