Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Select concatenate

  1. #1

    Select concatenate

    Ragazzi ho provato a fare delle select concatenate, ma non funziona, e non mi da nessun errore visibile

    La chiamata ajax :

    <script>
    $(document).ready(function() {

    $('#tipologia').change(function() {


    //recupero variabile "discriminante"
    var tipologia = $("#tipologia").val();


    //chiamata ajax
    $.ajax({

    type: "POST",

    url: "province.php",

    data: "tipologia=" + tipologia,
    dataType: "html",

    success: function(msg)
    {
    $("#caratteristiche").html(msg);
    },
    error: function()
    {
    alert("Chiamata fallita, si prega di riprovare..."); //sempre meglio impostare una callback in caso di fallimento
    }
    });
    });

    });//FINE DOM
    </script>
    La pagina che elabora

    <?php


    $db->Query("SELECT SIGLA, PROVINCIA, ID_PROVINCIA FROM province ORDER BY SIGLA");


    echo "<option value=''>Scegli la provincia</option>";




    while($row2 = $db->Row()){




    echo "<option value='{$row2->PROVINCIA}'";
    echo ($condominio_mod->condominio_provincia == $row2->PROVINCIA)? "selected" : "";
    echo">".$row2->SIGLA." </option>";


    }




    ?>



    </select>


    <select name="condominio_citta" id="caratteristiche" class="form-control">

    <option>Scegli...</option>


    </select>

    la pagina chiamata da ajax

    <?php
    $tipologia_selezionata = $_POST['tipologia'];
    ?>


    <?php
    include_once ("../inc/mysql.class.php");

    $db = new MySQL();

    if (! $db->Query("SELECT * FROM province WHERE PROVINCIA = '$tipologia_selezionata'")) $db->Kill();

    $ana=$db->Row();


    $provincia = $ana->ID_PROVINCIA;


    if (! $db->Query("SELECT * FROM comuni WHERE ID_PROVINCIA ='$provincia'")) $db->Kill();



    while($comuni=$db->Row()){

    $prezzo_base=$comuni->DESCRIZIONE;
    $codice=$comuni->CODICE;

    echo "<option value='$codice'>$prezzo_base</option>";



    }



    ?>

    Qual'è l'errore? vi ringrazio come sempre in anticipo per le risposte

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    premesso che nella "La pagina che elabora" vedo due
    Codice PHP:
    </select
    e non vedo dove si trova "#tipologia",
    credo che la "la pagina chiamata da Ajax" debba restituire il pacchetto delle option,
    non singolarmente una per una, quindi in prima battuta modificherei
    Codice PHP:
    if (! $db->Query("SELECT * FROM comuni WHERE ID_PROVINCIA ='$provincia'")) $db->Kill(); 
    $data "";
    while(
    $comuni=$db->Row())
    {
     
    $prezzo_base=$comuni->DESCRIZIONE;
     
    $codice=$comuni->CODICE;
     
    $data.="<option value='$codice'>$prezzo_base</option>";
    }
    echo 
    $data;
    ?> 

  3. #3
    Scusa se rispondo in ritardo, no non funziona riposto il codice magari nel copia e incolla ho sbagliato qualcosa


    Questa è la pagina che invia :


    codice:
    
    <?php
    
    
    // includo  il file delle classi php
    include_once ("../inc/mysql.class.php");
    
    
     $db = new MySQL();
    ?>
    <script>
    $(document).ready(function() {
    	
    	$('#tipologia').change(function() {
    
    
    		//recupero variabile "discriminante"
    		var tipologia = $("#tipologia").val();
    
    
    		//chiamata ajax
    		$.ajax({
    		
    		type: "POST",
    		
    		url: "http://www.freestyleweb.it/progetti/condominioware/Adminware2.0/admin/province.php",
    		
    		data: "tipologia=" + tipologia,
    		dataType: "html",
    		
    		success: function(msg)
    		{
    		$("#caratteristiche").html(msg); 
    		},
    		error: function()
    		{
    		alert("Chiamata fallita, si prega di riprovare..."); //sempre meglio impostare una callback in caso di fallimento
    		}
    	});
     });	
    		
    });//FINE DOM
    </script>
    
    
     <form action="content.php?page=67&modifica=si" enctype="multipart/form-data" role="modificacontratti" id="modificacontratti3" method="post" class="validate" name="modificacontratti3" novalidate="novalidate" >
      
         <select class="form-control" name="tipologia" id="tipologia">
    							
                     
    
    
                                           <?php  
    
    
                                           $db->Query("SELECT SIGLA, PROVINCIA, ID_PROVINCIA FROM province ORDER BY SIGLA");
    
    
                                           echo "<option value=''>Scegli la provincia</option>";
    
    
    
    
                                           while($row2 = $db->Row()){                   
    
    
    
    
                                               echo "<option value='{$row2->SIGLA}'";
                                               echo ($condominio_mod->condominio_provincia == $row2->SIGLA)? "selected" : "";
                                               echo">".$row2->SIGLA."  </option>";
    
    
                                               }
    
    
    
    
                                               ?>
    
    
                
                                          </select>
    
    
       <select name="condominio_citta" id="caratteristiche" class="form-control">
              
                                             <option>Scegli...</option>
                
               
                                         </select>
         
     </form>
    questa è la pagina che esegue, con le modifiche che mi hai indicato


    codice:
    <?php$tipologia_selezionata = $_POST['tipologia'];
    ?>
    
    
    <?php
    include_once ("../inc/mysql.class.php");
               
    $db = new MySQL();
                
    if (! $db->Query("SELECT * FROM province WHERE SIGLA = '$tipologia_selezionata'")) $db->Kill();   
     
    $ana=$db->Row();
    
    
    $provincia = $ana->ID_PROVINCIA;
    
    
     if (! $db->Query("SELECT * FROM comuni WHERE ID_PROVINCIA ='$provincia'")) $db->Kill(); 
    $data = "";
    while($comuni=$db->Row())
    {
     $prezzo_base=$comuni->DESCRIZIONE;
     $codice=$comuni->CODICE;
     $data.="<option value='$codice'>$prezzo_base</option>";
    }
    echo $data;
    ?>

    non riesco a capire perchè non va

  4. #4
    Qualcuno può aiutarmi a capire perchè non va?

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    il tuo codice è troppo specifico per fare un debug,

    la prima cosa che noto è, chiamando l'url che hai inserito, restituisce i caratteri di chiusura "?>" dello script php, mi aspetterei una pagina bianca o un messaggio di "errore"

    in realtà continuo a pensare che non siano le query concatenate, che salvo sviste, mi sembrato a posto

    non avendo mysql ho semplificato il tuo codice, ma in particolare, eseguo "provincie.php" senza url davanti e tutto funziona

    ti posto quanto fatto,
    codice HTML:
    <html>
    <head>
    <script src="jquery-1.11.1.js"></script>
    <script>
    $(document).ready(function() {
     $('#tipologia').change(function() {
      var tipologia = "tipologia=" + $("#tipologia").val();
    alert(tipologia);
      $.ajax({
       type: "POST",
       url: "province.php",
       data: tipologia,
       dataType: "html",
       success: function(msg)
       {
        $("#caratteristiche").html(msg); 
       },
        error: function()
       {
        alert("Chiamata fallita, si prega di riprovare...");
       }
      });
     });
    });
    </script>
    </head>
    <body>
      <form action="content.php?page=67&modifica=si" enctype="multipart/form-data" role="modificacontratti" id="modificacontratti3" method="post" class="validate" name="modificacontratti3" novalidate="novalidate" >
        <select class="form-control" name="tipologia" id="tipologia">
        <?php
          echo "<option value=''>Scegli la provincia</option>";
          echo "<option value='BO'>Bologna</option>";
          echo "<option value='MI'>Milano</option>";
          echo "<option value='SO'>Sondrio</option>";
        ?>
        </select>
        <select name="condominio_citta" id="caratteristiche" class="form-control">
          <option>Scegli...</option>
        </select>
      </form>
    </body>
    </html>
    Codice PHP:
    <?php
    $tipologia_selezionata 
    $_POST['tipologia'];
    $data "";
    $data.="<option value='1'>$tipologia_selezionata</option>";
    $data.="<option value='10'>1000</option>";
    $data.="<option value='20'>2000</option>";
    $data.="<option value='30'>3000</option>";
    echo 
    $data;
    ?>
    Ultima modifica di marino51; 25-01-2015 a 12:36

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.