1
Gestione Form / Re:Riempire caselle dropdown collegate fra loro in Chronoforms.
« il: 01 Nov 2013, 17:06:28 »
Buondì,
io sto creando un form con funzionalità simili ma con qualche problema.
intanto chiarisco che ho utilizzato i codici per un form appoggiato a database;
poi ho 3 dropdow:
-scuole (che contiene "infanzia","primaria","secondaria")
-categorie (che contiene una serie di categorie diverse a seconda della scelta del menù precedente)
-incontri (che contiente un elenco di incontri per ogni categoria scelta)
utilizzo chronoforms v4.0.1 su joomla! 2.5.1
Semplice modificando i codici suggeriti in questo post non riesco ad accedere al database nemmeno per uno solo dei dropdown, poi facendo una connessione come segue riesco a far visualizzare solo i campi del primo dropdown e non mi abilita i successivi:
$connessione = mysql_connect("localhost", "root", "");
mysql_select_db("science17", $connessione);
Inoltre selezionando "infanzia" nel primo dropdown dovrei attivare direttamente il terzo (cioè quello con i possibili incontri) in quanto non c'è distinzione di categorie per quella scelta.. e magari nascondere il campo "categorie"... è possibile?
Vi prego ho bisogno di risolvere almeno il problema di visualizzare in ogni drop tutte le possibilità relative alla scelta precedente.
HELP --> Vales <--
Allego tutte le info necessarie
Codice html:
Codice JS
Info sul DB
io sto creando un form con funzionalità simili ma con qualche problema.
intanto chiarisco che ho utilizzato i codici per un form appoggiato a database;
poi ho 3 dropdow:
-scuole (che contiene "infanzia","primaria","secondaria")
-categorie (che contiene una serie di categorie diverse a seconda della scelta del menù precedente)
-incontri (che contiente un elenco di incontri per ogni categoria scelta)
utilizzo chronoforms v4.0.1 su joomla! 2.5.1
Semplice modificando i codici suggeriti in questo post non riesco ad accedere al database nemmeno per uno solo dei dropdown, poi facendo una connessione come segue riesco a far visualizzare solo i campi del primo dropdown e non mi abilita i successivi:
$connessione = mysql_connect("localhost", "root", "");
mysql_select_db("science17", $connessione);
Inoltre selezionando "infanzia" nel primo dropdown dovrei attivare direttamente il terzo (cioè quello con i possibili incontri) in quanto non c'è distinzione di categorie per quella scelta.. e magari nascondere il campo "categorie"... è possibile?
Vi prego ho bisogno di risolvere almeno il problema di visualizzare in ogni drop tutte le possibilità relative alla scelta precedente.
HELP --> Vales <--
Allego tutte le info necessarie
Codice html:
Codice: [Seleziona]
<?php
$db =& JFactory::getDBO();
$connessione = mysql_connect("localhost", "root", "");
mysql_select_db("science17", $connessione);
$query = "
SELECT `id`, `scuola`
FROM `scuole` ORDER BY `scuola`";
$db->setQuery($query);
$nomes = $db->loadAssocList();
$option_scuola="";
foreach ( $nomes as $v ) {
$selected="";
$id = $v['id'];
$scuola = $v['scuola'];
if ($id==JRequest::getVar('regione',0,'GET','INT')) {
$selected="selected=\"selected\"";
}
$option_scuola.="<option value=\"$id\" $selected>$scuola</option>\n";
}
$query = "
SELECT `id`, `categoria`
FROM `categorie` WHERE `id_scuola`=".JRequest::getVar('scuola',0,'GET','INT')." ORDER BY `categoria`";
$db->setQuery($query);
$nomes = $db->loadAssocList();
$option_categoria="";
foreach ( $nomes as $v ) {
$selected="";
$id = $v['id'];
$categorie = $v['categoria'];
if ($id==JRequest::getVar('categoria',0,'GET','INT')) {
$selected="selected='selected'";
}
$option_categoria.="<option value=\"$id\" $selected>$categorie</option>\n";
}
$query = "
SELECT `id`, `incontro`
FROM `incontri` WHERE `id_categoria`=".JRequest::getVar('categoria',0,'GET','INT')." ORDER BY `incontro`";
$db->setQuery($query);
$nomes = $db->loadAssocList();
$option_incontro="";
foreach ( $nomes as $v ) {
$id = $v['id'];
$incontro = $v['incontro'];
$option_incontro.="<option value=\"$id\" $selected>$incontro</option>\n";
}
?>
<div class="form_item">
<div class="form_element cf_dropdown">
<div style="clear:both;"><label class="cf_label">Scuola</label>
<select id="scuola" name="scuola" onchange="province(this.form);" class="cf_inputbox validate-selection" ><option value="" selected="selected">Seleziona</option>
<?php echo $option_scuola; ?>
</select>
</div>
</div>
<div class="cfclear"> </div>
</div>
<div class="form_item">
<div class="form_element cf_dropdown">
<div style="clear:both;"><label class="cf_label">Categoria</label>
<select id="categoria" name="categoria" onchange="reload(this.form);" class="cf_inputbox validate-selection" ><option value="" selected="selected">Seleziona</option>
<?php echo $option_categoria; ?>
</select>
</div>
</div>
<div class="cfclear"> </div>
</div>
<div class="form_item">
<div class="form_element cf_dropdown">
<div style="clear:both;"><label class="cf_label">Incontro</label>
<select id="incontro" name="incontro" class="cf_inputbox validate-selection" ><option value="" selected="selected">Seleziona</option>
<?php echo $option_incontro; ?>
</select>
</div>
</div>
<div class="cfclear"> </div>
</div>
Codice JS
Codice: [Seleziona]
<script type="text/javascript">
function categorie(form)
{
var scu=form.scuola.options[form.scuola.options.selectedIndex].value;
self.location='index.php?option=com_chronocontact&chronoformname=scu_cat_inc&scuola=' + scu ;
}
function reload(form)
{
var cat=form.categoria.options[form.categoria.options.selectedIndex].value;
var scu=form.scuola.options[form.scuola.options.selectedIndex].value;
self.location='index.php?option=com_chronocontact&chronoformname=scu_cat_inc&categoria=' + cat + '&scuola=' + scu;
}
</script>
Info sul DB
Codice: [Seleziona]
--
-- Database: `science17`
--
-- --------------------------------------------------------
--
-- Struttura della tabella `scuole`
--
CREATE TABLE `scuole` (
`id` int(3) NOT NULL,
`scuola` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Struttura della tabella `categorie`
--
CREATE TABLE `categorie` (
`id` int(21) NOT NULL AUTO_INCREMENT,
`id_scuola` int(3) NOT NULL,
`categoria` text NOT NULL,
PRIMARY KEY (`id`),
KEY `id_scuola` (`id_scuola`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=23 ;
--
-- Struttura della tabella `incontri`
--
CREATE TABLE `incontri` (
`id` int(90) NOT NULL AUTO_INCREMENT,
`id_scuola` int(3) NOT NULL,
`id_categoria` int(21) NOT NULL,
`incontro` text NOT NULL,
PRIMARY KEY (`id`),
KEY `id_categoria` (`id_categoria`),
KEY `id_scuola` (`id_scuola`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=148 ;