- Home
- Categorie
- Coding e Sistemistica
- PHP
- Mi date una mano?
-
Mi date una mano?
Salve a tutti ho la seguente select, che dovrebbe visualizzare dei dati contenuti all'interno di un database
[html]
<select name="select">
<option>Salani</option>
<option>Mondadori</option>
<option>Einaudi</option>
</select>
[/html]e quando scelgo una delle voci in elenco, all'interno della stessa pagina, deve attivare una checkbox con i dati relativi alla mia scelta (sempre presenti nel database e collegati da un id)
[html]
La pietra folosofale
<input type="checkbox" name="checkbox" value="checkbox" />
</label>
<br />
La camera dei segreti
<label>
<input type="checkbox" name="checkbox2" value="checkbox" />
</label>
<br />
Il prigioniero di Azkaban
<label>
<input type="checkbox" name="checkbox3" value="checkbox" />
[/html]Non so che comando utilizzare per attivare la checkbox solo dopo avere effettuato una scelta nella select. Sapreste indicarmi come fare?
-
Ciao freebreathe.
Immagino che ti basti verificare se l'id specifico è collegato al scleta fatta e quindi checkare la box dando in output un checked
[HTML]<input type="checkbox" name="checkbox" value="checkbox" checked />[/HTML]
Facci sapere se risolvi.
-
Credo di essermi espressa male. a me serve un comando che, una volta scelta una voce nel menù select, ricarichi la pagina (o una parte di pagina) e mi vada a visualizzare, all'interno di una checkbox) tutte le voci collegate ad essa.
Per intenderci, avete presente quei siti in cui scegli la provincia e poi compare la select con tutti i comuni della provincia? Ecco, mi serve una cosa simile.
-
Ah!
Beh allora ti recuperi l'id dalla select Editore ricaricando la pagina e quindi fai una SELECT dei dati legati a quell'id_editore:
[html]<select name="editore">
<option value="1">Salani</option>
<option value="2">Mondadori</option>
<option value="3">Einaudi</option>
</select>[/html]```
SELECT * FROM libri WHERE id_editore='$editore'[php]while ($row=mysql_fetch_array($query)) { echo "<input type=\"checkbox\" name=\"libro\" value=\"".$id_libro."\" />"; }[/php]Sono sulla buona strada adesso? :)
-
Si, ma tutto questo deve avvenire all'interno della stessa pagina:
- visualizzo la select;
- scelgo una voce;
- la pagina si ricarica e mi visualizza la checkbox con le voci estrapolate dal mio database.
Ripeto, tutto deve avvenire al'interno della stessa pagina
-
Nessun problema. Metterai nei form un campo hidden name=action value= 1 o 2 a seconda dello step e quindi eseguire quanto ti interessa facendo un switch dell'action scelta.
-
Ti ringrazio, però non hocapito esattamente che devo fare
Potresti farmi qualche esempio pratico?
-
Eccomi.
Allora portando l'esempio considerando che le tue due tabelle siano così:
Tabella editori:
id
editore (Nome dell'editore)Tabella libri:
id
titolo (titolo del libro)
id_editore (id dell'editore associato)Penso che alla fine ti venga fuori questo:
[PHP]<?php
require_once ("config.php"); //includo il file di connessione al Db$action=false;
$action=$_POST['action'];if ($action!= "" || $action!=false)
{
switch ($action)
{
case 1: // dopo aver selezionato l'editore
$id_editore=false;
$id_editore=$_POST['editore'];
$sql="SELECT * FROM libri WHERE id_editore='$id_editore'";
$query=@mysql_query($sql) or die (mysql_error());
break;case 2: //questo è da utilizzare per lo step successivo alla selezione dei libri break; }
}
//estraiamo la lista degli editori per popolare la select
$sql_editore="SELECT * FROM editori";
$query_editore=@mysql_query($sql_editore) or die (mysql_error());?>
<!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" xml:lang="it" lang="it">
<head>
<link rel="stylesheet" href="style.css" type="text/css" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Quì il titolo</title>
</head>
<body><form name="editor" method="post" action="libri.php">
<select name="editore" onchange="document.editor.submit()">
<?
/**
* Creiamo dinamicamente la select degli editori e se abbiamo selezionato
* un editore in precedenza lo lasciamo selezionato
/
while ($row_editore=mysql_fetch_array($query_editore))
{?>
<option value="<? echo $row_editore['id']; ?>"<? if ($row_editore['id']==$id_editore) {echo "selected";}?>><? echo $row_editore['editore']; ?></option>
<?}?>
</select>
<input type="hidden" name="action" value="1" />
<input type="submit" value="Seleziona" />
</form>
<?
if ($action!= "" || $action!=false)
{
?>
<form name="book" method="post" action="libri.php">
<?
/*- Creiamo dinamicamente le checkbox dei libri
*/
while ($row=mysql_fetch_array($query))
{
echo $row['titolo']."<label><input type="checkbox" name="libri" value="".$row['id']."" /></label><br />";
}
?>
<input type="hidden" name="action" value="2" />
<input type="submit" value="Seleziona" />
</form>
<?}?>
</body>
</html>[/PHP]
Fatto un po' alla svelta e non testato ma credo non ci siano enormi buchi.
E' già pronto per lo step successivo alla selezione delle checkbox.
Vedi se ti sta bene adattandolo a quel che hai tu e facci sapere se risolvi.
- Creiamo dinamicamente le checkbox dei libri