Ragazzi ho fatto uno script senza jquery per le select concatenate, perchp avevo un pò troppi conflitti di jq.
Codice PHP:
<?php $db = new MySQL();error_reporting(E_ALL);$regioni_opt = '';$province_opt = '';$comuni_opt = '';
// costruisco il primo select//$regioni_arr = array('Puglia','Basilicata','Molise'); // simula il risultato di una query if (!$db->Query("SELECT * FROM regioni")) echo $db->Kill();//foreach ($regioni_arr as $regione) while($regioni = $db->Row()){ $selected = (isset($_POST['regione']) && $_POST['regione'] == $regioni->id_reg) ? 'selected="selected"' : ''; $regioni_opt .= "<option value=\"$regioni->id_reg\" $selected>$regioni->nome_regione</option>\n";}
if($_POST){ if($_POST['comune'] !='') { header("Location: index.php?page=24&id_reg={$_POST['regione']}&id_provincia={$_POST['provincia']}&idComune={$_POST['comune']}&annuncio={$_POST['annuncio']}"); exit(); }
if($_POST['regione'] != '') { // costruisco il secondo select// $province_arr = array('Bari','Brindisi','Taranto','Lecce','Foggia'); // simula il risultato di una query
// foreach ($province_arr as $provincia) if (!$db->Query("SELECT * FROM province WHERE id_reg={$_POST['regione']}")) echo $db->Kill(); while($provincia = $db->Row()) { $selected = ($_POST['provincia'] == $provincia->id_pro) ? 'selected="selected"' : ''; $province_opt .= "<option value=\"$provincia->id_pro\" $selected>$provincia->nome_provincia</option>\n"; } }
if($_POST['provincia'] != '') { // costruisco il secondo select// $comuni_arr = array('Bari','Barletta','Trani','Molfetta'); // simula il risultato di una query if (!$db->Query("SELECT * FROM comuni WHERE id_pro={$_POST['provincia']}")) echo $db->Kill();
while($comune = $db->Row()) { $comuni_opt .= "<option value=\"$comune->id_com\">$comune->comune</option>\n"; } }}costruisci_form($regioni_opt,$province_opt,$comuni_opt);
function costruisci_form($regioni, $province, $comuni){ ?> <form action="#" id="form1" name="form1" method="post" > <li> <label for="pass">Regioni</label> <div class="input-box" style="padding-bottom: 5px"> <select name="regione" id="regione" onchange="javascript: document.form1.submit();" class="input-text required-entry validate-password" style="width: 100%"> <option value="">-- seleziona una regione --</option> <?php echo $regioni?> </select> </div> </li> <li> <label for="pass">Provincia</label> <div class="input-box" style="padding-bottom: 5px"> <select name="provincia" id="provincia" onchange="javascript: document.form1.submit();" class="input-text required-entry validate-password" style="width: 100%"> <option value="">---</option> <?php echo $province?> </select> </div> </li> <li> <label for="pass">Comuni</label> <div class="input-box" style="padding-bottom: 5px"> <select name="comune" id="comune" onchange="javascript: document.form1.invia.disabled = (this.selectedIndex == 0) ? true : false;" class="input-text required-entry validate-password" style="width: 100%"> <option value="">---</option> <?php echo $comuni?> </select> </div> </li> <li> <label for="pass">Testo</label> <div class="input-box" style="padding-bottom: 5px"> <input type="text" name="annuncio" value="" class="input-text" style="width: 100%" maxlength="128" /> </div> </li> <li> <p> </p> <div class="input-box"> <input name="invia" type="submit" id="invia" class="button btn-cart" value="Invia" disabled="disabled" /> </div> </li> </form> <?php}?>
Lo scrip funziona, l'unico problema forse grosso, e che io dati selezionati vorrei farli poi inviare tramite invio ad una pagina specifica, invece attualmente mi sono inventato questa escamotage :
Codice PHP:
if($_POST['comune'] !='')
{
header("Location: index.php?page=24&id_reg={$_POST['regione']}&id_provincia={$_POST['provincia']}&idComune={$_POST['comune']}&annuncio={$_POST['annuncio']}");
exit();
}
M così non vabbene , a parte una stringa lunghissima, come posso modificarlo in modo che funzioni le select concatenate ma che poi invia tranquillamente i valori action nel form?
grazie per le risposte