- Home
- Categorie
- Coding e Sistemistica
- PHP
- Menu a tendina in modulo
-
Menu a tendina in modulo
Salve,
ho preparato questo menu e inserito nella index di un modulo specifico dove c'è la query al db per l'estrazione dei dati da visualizzare:
echo"<form name="abc" id="abc"action="prova.html?campo1=".$campo1."" method="post">";
echo"<select id="campo1" name="campo1" onchange="cambiaAbc()">";
echo"<option selected="selected">- SELEZIONA - </option>";
echo"<option value="AAA">AAA </option>";
echo"<option value="BBB">BBB </option>";
echo"<option value="CCC">CCC </option>";
echo"<option value="DDD">DDD </option>";
echo"</select>";
echo" <input id="Button1" name="Button1" type="submit" value="Aggiorna query">";
echo"</form>";Il form funziona bene, l'unica cosa è che dopo aver selezionato un'opzione ho notato che l'indirizzo nel browser è del tipo
miodominio.it/prova.html?campo1=
invece di:
miodominio.it/prova.html?campo1=AAA (o BBB, CCC ... a seonda della selezione fatta nel menu a tendina)
Come andrebbe scritto il codice in modo da non avere un url diciamo... troncata?Grazie, sono in stallo
Nik06
-
Semplice, hai sbagliato l'intestazione del FORM.
Metti questo:
<form name="abc" id="abc" action="prova.html" method="get">Il risultaltato sarà:
.../prova.html?campo1=AAA&Button1=Aggiorna+queryCiao
-
Ho apportato le modifiche che mi hai consigliato ma scrivendo metodo=get non funziona, lo fa solo con post.
C'è per caso qualche altra cosa da specificare semmai nel modulo per avere
.../prova.html?campo1=AAA&Button1=Aggiorna+query
Grazie
Nik06
-
Quello che vuoi far tu è passare un dato in modalità GET (...?dato=...) ad una pagina web.
Il metodo POST non prevede l'aggiunta di informazioni in coda all'indirizzo della pagina.
Se non funziona vuol dire che c'è un problema nella pagina a cui deve essere inviato il dato.
Se mai posta un pezzo di codice della pagina di destinazioneCiao
-
Ciao, scusa il ritardo
In effetti con il metodo post funziona ma non aggiunge (...?dato=...). La pagina a cui deve essere inviato il dato e cioè prova.html è sostanzialmente composta da query al db per l'estrazione di determinati risultati.
Ti invio comunque in allegato il file.
Spero proprio in una soluzione, ci sto lavorando da diverso tempo.
Grazie
Nik06
-
Se quella che hai postato è "prova.html"
[php]
$oggieieri = "SELECT DISTINCT campo1, timeStamps, campo2 FROM miatabella WHERE campo1 = '$campo1' ORDER BY timeStamps DESC LIMIT 2";
$d_oggieieri = $db->sql_query($oggieieri);
$row = $db->sql_fetchrow($d_oggieieri);
$dato_oggi = $row['campo2'];
$row = $db->sql_fetchrow($d_oggieieri);
$dato_ieri = $row['campo2'];$percentuale = (($dato_oggi - $dato_ieri) * 100)/$dato_ieri;
$percentuale = number_format($percentuale, 2, '.', '');
if ($percentuale>0.0) {
$perc="<span class="percp"> +" . $percentuale . "</span> <img src="images/frecciasu.gif">";
}
else if ($percentuale<0.0) {
$perc="<span class="percn"> " . $percentuale . "</span> <img src="/images/frecciagiu.gif">";
}
else {
$perc="<span class="percneu"> 0.00</span>";
}$result = $db->sql_query("SELECT DISTINCT campo1, DATE_FORMAT(timeStamps,'%d-%m-%Y') as date, campo2, campo3, campo4, campo5, campo6 From miatabella Where campo1 = '$campo1' ORDER BY timeStamps DESC LIMIT 1");
$numrows = $db->sql_numrows($result);
if ($numrows > 0) {
echo "<table border="1" cellpadding="1" cellspacing="0" bgcolor="#ffffff" width="560" align="">";while ($row = $db->sql_fetchrow($result)) { $timeStamps = $row['date']; $campo1 = $row['campo1']; $campo2 = $row['campo2']; $campo3 = $row['campo3']; $campo4 = $row['campo4']; $campo5 = $row['campo5']; $campo6 = $row['campo6'];
if (isset($campo1))
echo "<td width=\"80\">Simbolo:<br><span class=\"liste\">$campo1</span></td>
<td width="80">Data:<br>$timeStamps</td>
<td width="80">Chiusura:<br>$campo2</td>
<td width="80">Var. %<br>$perc</td>
<td width="80">Massimo:<br>$campo3</td>
<td width="80">Minimo:<br>$campo4</td>
<td width="80">Volumi:<br>$volData</td></tr>";
} echo "</table>";
}
echo "<br>";
if (isset($campo1))
echo "<IMG SRC='chart/php/mychart.php?campo1=".$campo1."'>";
[/php]Proprio all'inizio c'è una query SQL ($oggieieri = "SELECT...) che richiede la variabile $campo1, che dovrebbe essere il valore scelto nel menù a tendina.
Questo $campo1 non viene inizializzato (almeno non me ne sono accorto :D), quindi alla query arriva un valore nullo.Prova ad aggiungere questo all'inizio del codice:
[INDENT]$campo1 = $_GET["campo1"];
[/INDENT]
Ciao
-
Ciao,
la query SQL ($oggieieri = "SELECT...) viene fatta per calcolare la percentuale tra il primo ed il penultimo record, non riguarda la selezione.
Avevo comunque già provato ad aggiungere la variabile $campo1 alla query SQL che mi consente di richiamare il prod dal menu a tendina ma non funziona.
Sinceramente non so come fare
Grazie
Nik06
-
Hai provato a fare la modifica consigliata
$campo1 = $_GET["campo1"];
prima di
$oggieieri = "SELECT...
-
Sì ho provato a mettere la modifica anche prima delle altre query ma non funziona. Nello specifico ripeto:
$oggieieri= ... è una query che mi consente di fare un calcolo tra 2 records ...
-
Scusa, ma se la pagina prova.html contiene codice php, dovresti rinominarla prova.php
-