Mha il problema è dovuto alla nuova versione del php, e non so cosa comporti. La cosa che mi lasciava perplesso era che il codice a volte funzionava e a volte no, così ho aggiunto dopo l'ultima select:
<input type="submit" value="Inserisci">
La cosa strana è che al primo avvio la pagina non funziona mi rimangono i 2 select bloccati su Seleziona Editore e Seleziona Collana. Quando premo per la prima volta il bottone tutto sembra funzionare, Seleziono l'editore e nel comando print_r($_POST); mi appare l'id dell'editore e mi carica le collane di quell'editore, alla seconda pressione del bottone mi stampa anche l'ID della collana.
Ed ora domanda: Se aggiundo nel mio form action="Save.php" cosa succede: appena seleziono l'editore logicamente parte il Save.php, come posso fare per non inviare i dati fino a quando non completo tutto il form e pigio il bottone?
provart
@provart
Post creati da provart
-
RE: Come non resettare il primo menù a tendina
-
RE: Come non resettare il primo menù a tendina
Per il momento ti ringrazio comunque tanto per l'interessamento. Potrebbe essere benissimo che abbia qualcosa di impostato male nell'interprete php, ma non mi sono mai interessato moltissimo della configurazione ho sempre usato WampServer per istallare i vari servizi, può essere che l'ultima versione abbia qualche problemino, usa il php 5.3.4 apache 2.2.17 e mysql 5.5.8. L'unica cosa che ho sempre impostato in più del default di istallazione è magic.quote.gpc.
-
RE: Come non resettare il primo menù a tendina
Ho provato il codice che mi hai incollato, e visto che non ha nessun appoggio al DB dovrebbe funzionare a quanto mi dici, e fa così:
$_POST =
Editori: la select con scritto seleziona editore.
e poi:
Notice: Undefined index: ID_Editori in C:\Nuova_cartella1\index.php on line 13
aaa
Notice: Undefined index: ID_Editori in C:\Nuova_cartella1\index.php on line 15
bbb
Notice: Undefined index: ID_Editori in C:\Nuova_cartella1\index.php on line 17
ccc
Notice: Undefined index: ID_Editori in C:\Nuova_cartella1\index.php on line 19
ddd
Notice: Undefined index: ID_Editori in C:\Nuova_cartella1\index.php on line 21
eee
Collane: la select con seleziona collaneEntrambe le selct comunque sono vuote.
Devo trovare il modo di implementare queste due select in un FORM più ampio dove scelgo, Autore dal menù a tendina, e ne prelevo l'id, titolo, Editore da menù a tendina di cui prelevo l'ID, Collana da menù a tendina da cui prelevo ID, poi tutta una serie di dati: numero collana, giorno, mese, anno, link alla pagina del libro, titolo, originale, mese, anno, link alla pagina del libro in lingua originale. La pagina l'ho creata e funziona, il problema è che molti editori hanno collane con nome generico simile, esempio Narrativa, e caricandole tutte non riesco a capire qual è quella giusta. -
RE: Come non resettare il primo menù a tendina
Ho provato a inserire i dati al posto delle xxx ma non va, mi dice che non conosce ID_Editori!!!
[PHP]
while ($row=mysql_fetch_array($result)){
if ($row['ID']==$_POST['ID_Editori']) $sel='selected="selected"'; else $sel='';
print ("<option ".$sel." value="".$row['ID']."">".$row['Editori']."</option>");
}[/PHP]
Cosa sbaglio?
-
Come non resettare il primo menù a tendina
Scusate se riposto, ma visto che la discussione iniziale era per un altro problema molto probabilmente essendo stato risolto il problema non viene più letta. Allora ho le mie 2 dropdown che sono dipendenti, quando seleziono l'editore la seconda dropdown mi si ricarica con le collane di quell'editore ma l'editore si resetta. Io vorrei che rimanesse visualizzato l'editore selezionato.
[PHP]
<?php
$conn = mysql_connect("localhost","user","password") or die("Connection Failed");
$db = mysql_select_db("bdb") or die("Connection Failed");
$mydb=mysql_set_charset('utf8');
?>
<html>
<head>
</head>
<body>
<form id="myForm" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Editori:
<select name="ID_Editori" onchange="javascript:document.getElementById('myForm').submit();">
<option value="">Seleziona editore</option>
<?php
// Visualizzo l'elenco degli editori
$strSQL = "SELECT * FROM Editori ORDER BY Editori";
$result = mysql_query($strSQL, $conn);while( $row = mysql_fetch_assoc($result) ) { echo "\t<option value=\"" . $row['ID'] . "\">" . $row['Editori'] . "</option>\n"; } ?> </select> <br /> Collane: <select name="ID_Collan"> <option value="">Seleziona collana</option> <?php // Visualizzo le eventuali collane disponibili per l'editore selezionato if ( isset($_POST['ID_Editori']) ) { $strSQL = "SELECT * FROM Collane WHERE ID_Editori = '" . $_POST['ID_Editori'] . "' ORDER BY Collane"; $result = mysql_query($strSQL, $conn); while( $row = mysql_fetch_assoc($result) ) { echo "\t<option value=\"" . $row['ID'] . "\">" . $row['Collane'] . "</option>\n"; } } ?> </select> </form> </body>
</html>
[/PHP]Mi era stato suggerito di aggiungere 2 righe dentro il primo il codice di seleziona editore, ma io non sono riuscito a farle funzionare.
Grazie per l'aiuto. -
RE: Come eliminare i doppioni
[LEFT]Ho messo male il codice o c'è un errore?
<?php
// Visualizzo l'elenco degli autori
$strSQL = "SELECT * FROM Editori ORDER BY Editori";
$result = mysql_query($strSQL, $conn);while( $row = mysql_fetch_assoc($result) ) { if ($row['ID']==$_POST['ID_Editori']) $sel='selected="selected"'; else $sel=''; echo "\t<option " .$sel. " value=\"" . $row['ID'] . "\">" . $row['Editori'] . "</option>\n"; } ?>
perché provandolo così mi da errore, mi mostra la finestra con errore sopra ogni editore che ho nel database. Comunque a me servirebbe di poter aggiornare il secondo menù a tendina in base alla selezione del primo. Qualsiasi codice funzionante è ben accetto e Grazie per l'aiuto[/LEFT]
-
RE: Come eliminare i doppioni
Mha, c'è qualcosa che mi sfugge, ho trovato e adattato un codice che funziona:
<?php $conn = mysql_connect("localhost","user","password") or die("Connection Failed"); $db = mysql_select_db("bdb") or die("Connection Failed"); $mydb=mysql_set_charset('utf8'); ?> <html> <head> </head> <body> <form id="myForm" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> Editori: <select name="ID_Editori" onchange="javascript:document.getElementById('myForm').submit();"> <option value="">Seleziona editore</option> <?php // Visualizzo l'elenco degli autori $strSQL = "SELECT * FROM Editori ORDER BY Editori"; $result = mysql_query($strSQL, $conn); while( $row = mysql_fetch_assoc($result) ) { echo "\t<option value=\"" . $row['ID'] . "\">" . $row['Editori'] . "</option>\n"; } ?> </select> <br /> Collane: <select name="ID_Collan"> <option value="">Seleziona collana</option> <?php // Visualizzo gli eventuali articoli disponibili per l'autore selezionato if ( isset($_POST['ID_Editori']) ) { $strSQL = "SELECT * FROM Collane WHERE ID_Editori = '" . $_POST['ID_Editori'] . "' ORDER BY Collane"; $result = mysql_query($strSQL, $conn); while( $row = mysql_fetch_assoc($result) ) { echo "\t<option value=\"" . $row['ID'] . "\">" . $row['Collane'] . "</option>\n"; } } ?> </select> </form> </body> </html>
Questo codice carica il primi elenco dal DB mysql e quando seleziono l'editore mi cariga giustamente le collane di quell'editore, ma resetta il primo, anche se presumo che mantenga comunque il giusto valore dell'ID_Editori. Ora qualcuno mi può spiegare perchè se aggiungo una sola riga di codice prima della chiusura del form tipo: <input type="submit" name="submit" value="Inserisci" style="font-family: Times New Roman; font-size: 14pt"></p> non funziona più?
-
RE: Come eliminare i doppioni
Si grazie, dopo essermi scervellato un po ho risolto proprio con GROUP BY.
Ora mi sto scervellando per risolvere un altro problema, sto cercando di far ricaricare in una pagina due menù a tendina il secondo dipendente dal primo tramite ID senza ricaricare una nuova pagina, e con javascritp document.getElementById('myForm').submit(); lo fa anche se non so se poi funziona. Il primo problema e che quando aggiungo gli elementi prima e dopo queo 2 menù a tendina il javascript non vuole più funzionare- Secondo problema il from indicato nell'esempio trovato è <form id="myForm" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> ora ho letto che non posso nidificare i form, ma io avrei bisogno che al temine della compilazione della pagina tutti i gli $_POST venissero trasferiti alla pagina di inseriment salva.php. Se qualcuno ha qualche consiglio o tutorial da leggermi. Possibilmento non quello relativo a regioni e provincie ne sarei grato.
-
Come eliminare i doppioni
Salve a tutti, ne capisco molto poco di PHP e anche del resto pultroppo, ho un database per l'archiviazioni dei libri con relativa ricerca, ma vorrei che la ricerca del titolo originale non mi stampasse i risultati doppi, dovuti alla stuttura del DB MSQL e dai nostri cari editori che sopratutto un tempo cambiavano il titolo all'edizione originale più volete. Questo è il codice:
$sql="SELECT * FROM Autori INNER JOIN libri ON Autori.ID = libri.ID_Autori JOIN mese_originale ON libri.ID_mese_originale = mese_originale.ID WHERE autori LIKE
'%".$_POST['name']."%'";
//-run the query against the mysql query function
$result=mysql_query($sql);
//Guardo quante righe nel DB sono state trovate
$numRisultati = mysql_num_rows($result);
if($numRisultati != 0)
{ // se ho trovato almeno un risultato allora faccio partire il loop
//-create while loop and loop through result set
echo "TITOLI ORIGINALE:\n";
while($row=mysql_fetch_array($result))
{
$autore=$row['Autori'];
$originale=$row['Titolo_Originale'];
$data=$row['Data_Titolo_Originale'];
$mese_o=$row['Mese_Originale'];
$trama_o=$row['Link_Titolo_Originale'];
//-display the result of the array
if ($originale != "") {
echo "<ul>\n";
echo "<li>"."<a href="$trama_o">".$autore." - ".$originale.", ".$mese_o." ".$data."</a></li>\n";
echo "</ul>";Come faccio a controllare che $trama non sia doppio ed evitare che mi stampi più volte il titolo originale, ho già provato SELECT DISTINCT ma non ho ottenuto il risultato sperato