Problema select dinamiche con php e jquery

felix80

Nuovo Utente
17 Lug 2012
1
0
0
Salve a tutti,
posto perchè sto impazzendo!

devo estrapolare da un vecchio database la provincia ed il comune in modo dinamico.
ho trovato un buon tutorial proprio su questo sito ed ho cercato di adattarlo alle mie esigenze ma con poco successo!

il tutorial
https://www.mrw.it/ajax/articoli/select-dinamiche-jquery-php_1062.html

devo estrapolare come dicevo la provincia ed il comune di conseguenza ma il problema è che le due tabelle non presentano un campo id e neanche una chiave primaria. l'unica logica è rappresentato dal campo regione presente in tutte e due le tabelle.

le due tabelle sono:
hs_provincia
hs_comuni

il campo da estrarre (che deve comparire nella seconda select comune) è definito Capoluogo nella tabella.

Sono un neofita del php e conosco ben poco di javascript e jquery. spero postando il codice che qualcuno mi aiuti a capirci qualcosa.

index.php

Codice:
<head>

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
// Select Province e Comuni dalla Regione. 

// Select Comuni dalla Provincia. 
function selCom(Regione) {
  // Seleziono comuni di questa provincia. 
  $.get("select_abitativa.php", { provinciaid: idProvincia, requestItems: 'Capoluogo'}, 
  function(dataComuni){
    $("select[id='comune']").empty();
    var options = '<option value="">-- seleziona --</option>';
    var arrayComuni = dataComuni.split( '||');
    for (var i = 1; i < arrayComuni.length; i++) {
      var comune = arrayComuni[i].split( /,/);
      options += '<option value="' + Capoluogo[0] + '">' + Capoluogo[1] + '</option>';
    }
    $("select[id='comune']").html(options);
  });
}
</script>




</head>
<body>

<?php 
// Collegamento ad database. 

include("dbconfig.php");

?>
  
        <!--Contenuto tab1-->
                <form action="ricerca.php" method="get" id="formYIWqe">
  <fieldset style='width:290px;  float:left; text-align: left; padding-top: 10px; padding-bottom:10px; border:0px  solid #999;'>
   
<label for="hs_province">Provincia:</label><br />
<select id="hs_province" name="hs_province" onChange="selCom(this.value);">
<option value="">-- seleziona --</option>
<?php

// Query seleziona tutte le province. 
$sql = "select * from hs_province order by Capoluogo"; 

// Eseguo la query. 
$result = mysql_query($sql, $conn); 
while($hs_province = mysql_fetch_array($result)) {
?>
<option value="<?php echo $hs_province['Regione']; ?>" selected><?php echo $hs_province['Capoluogo']; ?></option>
<?php
}
?>
</select>
      <br>
           
        <label for="comune" style='font-size:12px; width:195px;  padding:5px; '><strong>Comune<abbr title="campo obbligatorio">*</abbr></strong></label>
        <select name="comune" id="comune" tabindex="6" style='font-size:12px;width:145px; float:right;  '>
          <option value="" selected="selected">-- seleziona --</option>
        </select>
            
  <p class="controls">
     <input type="invia" name="invia" id="invia" value="Invia" tabindex="7" />
  </p>
</form>




</body>


select_abitativa.php
Codice:
<?php
// Seleziona Province e Comuni. 
include("dbconfig.php");

  if (isset($_GET['requestItems']) and $_GET['requestItems']==='Capoluogo') {
    $provinciaID = intval($_GET['provinciaid']);
    $query = <<<EOQ
SELECT * 
FROM hs_comuni 
WHERE id_provincia = '$provinciaID' 
ORDER BY comune
EOQ;
    $result = mysql_query($query, $conn);
    $returnComuni = '';
    while ($row = mysql_fetch_array($result)) {
      $returnComuni .= "||".$row['Regione'].",".$row['Capoluogo'];
    }
    print_r($returnComuni);
  }

?>



Chiaramente ho provato più e più volte ma con pochi risultati e tanto mal di testa.
Un aiuto sarebbe mooolto gradito, Grazie!!!!
Felix
 

Discussioni simili