Visualizzazione dei risultati da 1 a 2 su 2

Discussione: select concatenate

  1. #1

    select concatenate

    Ragazzi ho fatto questo script ma non riesco a capire perchè non funziona, grazie in anticipo per le risposte:


    codice:
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
    <script>
    $(document).ready(function() {
     
        $('#id_generale').change(function() {
     
            //recupero variabile "discriminante"
            var id_generale = $("#id_generale").val();
     
            //chiamata ajax
            $.ajax({
     
            type: "POST",
     
            url: "content.php?page=13",
     
            data: "id_generale=" + id_generale,
            dataType: "html",
     
            success: function(msg)
            {
            $("#id_specifici").html(msg);//stampa i risultati dentro la seconda select
            },
            error: function()
            {
            alert("Chiamata fallita, si prega di riprovare..."); //sempre meglio impostare una callback in caso di fallimento
            }
        });
     });    
     
    });//FINE DOM
    </script>

    Codice in vece del form è questo:


    codice:
    <select name="id_generale" id="id_generale">
              <option value="">Scegli la categoria</option>
    		  <?php
    		  include('config.php');
    		$s_sql = "SELECT * FROM settori_generali_tbiz  ORDER BY testo";
    		
    		$s_query = @mysql_query($s_sql);
    		//echo $s_sql;									   
    		if(@mysql_num_rows($s_query) > 0) {
    													
    		  while($s_result = @mysql_fetch_array($s_query)) {
    			  
    			 $ris = $s_result['id_generale'];
    				 echo "<option value='$ris'>".$s_result['testo'] ."</option>"; 
    		  }
    		
    		}
        ?>  
    
    
       <? echo $_POST['id_generale'];?>
              <select id="id_specifici" name="id_specifici">
              <option value="">Scegli la sotto categoria</option>
    		  <?php
    		$id_generale = $_POST['id_generale'];
    		echo  $_POST['id_generale'];
            $a_sql = "SELECT * FROM settori_specifici WHERE id_generale = $id_generale";
           
         	$a_query = @mysql_query($a_sql);
    		    
            while($a_result = @mysql_fetch_array($a_query)) {
         
             $testo_specifico = $a_result['testo_specifico'];
             $id_specifici = $a_result['id_specifici'];
         
        	echo "<option value='$id_specifici'>$testo_specifico</option>";
         
       
         
        }  //while loop
         
        ?>
        </select>
    Non riesco a capire perchè non funziona grazie

  2. #2
    Ragà ho cambiato script e questo sembra funzionare per un solo particolare, ho fatto una modifica per permettere che il valore iniziale rimanga nella select, in modo da poter poi prelevare i dati, il problema è che funziona e quando l'utente sceglie la categoria, gli appare la sottocategoria, ma una volta scelto utente non riesce più a scegliere le altre categorie, almenochè non aggiorni la pagina, come posso ovviare questo inconveniente c'è un modo che fare in modo che la categoria selezionata rimane?


    codice:
    <script type="text/javascript">
    var xmlhttp;
    
    function mostraInfo(str)
    {
    xmlhttp=GetXmlHttpObject();
    if (xmlhttp==null)
    {
    alert ("Browser does not support HTTP Request");
    return;
    }
    var url="md5.php";
    url=url+"?id_generale="+str;
    xmlhttp.onreadystatechange=stateChanged;
    xmlhttp.open("GET",url,true);
    xmlhttp.send(null);
    }
    
    function stateChanged()
    {
    if (xmlhttp.readyState==4)
    {
    document.getElementById("info").innerHTML=xmlhttp.responseText;
    }
    }
    
    function GetXmlHttpObject()
    {
    if (window.XMLHttpRequest)
    {
    // code for IE7+, Firefox, Chrome, Opera, Safari
    return new XMLHttpRequest();
    }
    if (window.ActiveXObject)
    {
    // code for IE6, IE5
    return new ActiveXObject("Microsoft.XMLHTTP");
    }
    return null;
    }
    </script>
    
    <form>
    <?php include('config.php');?>
    <div id="info">
    <select name="id_generale" id="id_generale" onChange="mostraInfo(this.value)" >
              
    		  <?php
    		 if($_GET['id_generale'] ==''){
    		$s_sql = "SELECT * FROM settori_generali_tbiz  ORDER BY testo";
    		 } else {
    			$s_sql = "SELECT * FROM settori_generali_tbiz WHERE id_generale ='". $_GET['id_generale']."'  ORDER BY testo"; 
    		 }
    		$s_query = @mysql_query($s_sql);
    		
    		if(@mysql_num_rows($s_query) > 0) {
    													
    		  while($s_result = @mysql_fetch_array($s_query)) {
    			  
    			 $ris = $s_result['id_generale'];
    				 echo "<option value='$ris'>".$s_result['testo'] ."</option>"; 
    		  }
    		
    		}
        ?>  
        </select>
        
        
         <select id="id_specifici" name="id_specifici">
             
    		  <?php
    		$id_generale = $_GET['id_generale'];
    		echo  $_POST['id_generale'];
            $a_sql = "SELECT * FROM settori_specifici WHERE id_generale = $id_generale";
           
         	$a_query = @mysql_query($a_sql);
    		 echo "<option value=''>Scegli la categoria</option>";							      
            while($a_result = @mysql_fetch_array($a_query)) {
         
             $testo_specifico = $a_result['testo_specifico'];
             $id_specifici = $a_result['id_specifici'];
         
        	echo "<option value='$id_specifici'>$testo_specifico</option>";
         
       
         
        }  //while loop
         
        ?>
        </select>
        </div>
        
        
    </form>
    come posso FARE? come avete notato faccio lanciare un $_GET, dopo la scelta e faccio un if sulla prima query, ma questo non mi fa tornare più indietro <.<

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 © 2020 vBulletin Solutions, Inc. All rights reserved.