Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Select concatenate jquery/php/mysql

    Salve a tutti,
    come da titolo avrei un problema con le select e l'interazione jquery->php->mysql:

    io vorrei che all'apertura della pagina riempisse il primo select in automatico, dopo di che, riempirà il secondo select in base al dato scelto sul primo... e infine vorrei, che una volta selezionato il secondo dato, nel div "risultato" apparisse il codice generato dalla funzione richiamata al momento della select.


    quindi: sbirciando fra varie guide, sono arrivato a questo risultato, le select funzionano, ma non appare alcunchè nel div "risultato" al momento della seconda select:



    codice:
    <?php   include('db.php');
      include('func.php');
      include('msg.php');
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
                <title>Chained Select Boxes using PHP, MySQL and jQuery</title>
                <link href="style.css" rel="stylesheet" type="text/css" />
                <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
                <script type="text/javascript">
    
    
                    $(document).ready(function() {
                        $('#coll').change(function(){
                            $.get("func.php", {
                                func: "coll",
                                id_tpa: $('#coll').val()
                            }, function(response){
                                setTimeout("finishAjax('result_1', '"+escape(response)+"')", 400);
                            });
                            return false;
                        });
                    });
                    function finishAjax(id, response) {
                        $('#'+id).html(unescape(response));
                        $('#'+id).fadeIn();
                    }
                    function finishAjaxTpb(response) {
                        $('#dati_viaggio').html(unescape(response));
                        $('#dati_viaggio).fadeIn();
                    }
                </script>
        </head>
        <body>
            <div id="container" class="container">
                <div id="mod_1" class="">
                    
    
    
                    <form action="" method="post">
                        <span>
                        <div class="stile-select">
                        <select name="coll" id="coll">
        
                            <option value="" selected="selected" disabled="disabled"><?= $msg_f_pa ?></option>
          
                                    <?php tpa(); ?>
        
                        </select> 
                        </div>
                        </span>
                        <span id="result_1" >
                        <div class="stile-select">
                        <select name="#" id="#">
                            <option value=" " disabled="disabled" selected="selected"><?= $msg_f_pb ?></option>
                        </select>
                        </div>
                        </span>
                    </form>
                    <span id="dati_viaggio">
                    </span>
               </div>
            </div>
        </div>
    </body>
    </html>

    func.php
    codice:
    <?php
    
    
    
    /* seleziona i porti di partenza,
     * ne verifica il nome e crea la select "coll" per l'analisi dei porti di ritorno.
     */
     
    function tpa()    {
        $result = mysql_query("SELECT DISTINCT id_tpa, np FROM tpa") 
        or die(mysql_error());
    
    
          while($pp = mysql_fetch_array( $result )) 
      
            {
               echo '<option value="'.$pp['id_tpa'].'">'.$pp['np'].'</option>';
            }
    }
    
    
    /* assegna la variabile "id_tpa" e rimanda alla funzione "coll"
     */
      
    if($_GET['func'] == "coll" && isset($_GET['func'])) { 
       coll($_GET['id_tpa']); 
    }
    
    
    
    
    
    
    /* verifica i porti disponibili per il ritorno e crea la select per la selezione.
     * assegna la variabile id_tpb
     */
    function coll($id_tpa)    {  
        include_once('db.php');
        $result = mysql_query("SELECT DISTINCT tpb.id_tpb, tpb.np FROM tpb, tratte WHERE tratte.id_tpa = $id_tpa AND tratte.id_tpb = tpb.id_tpb") 
        or die(mysql_error());
    
    
        echo '<div class="stile-select">';    
        echo '<select name="tpb" id="tpb">';
    
    
               while($tpb = mysql_fetch_array( $result )) 
                {
                  echo '<option value="'.$tpb['id_tpb'].'">'.$tpb['np'].'</option>';
                }
        
        echo '</select> ';
        echo '</div>';
        echo "<script type=\"text/javascript\">
                $('#tpb').change(function(){
                    $.get(\"func.php\", {
                        func: \"tpb\",
                        id_tpb: $('#tpb').val()
                    }, function(result){
                        setTimeout(\"finishTpb('\"+escape(response)+\"')\", 400);
                    });
                    return false;
                });
            </script>";    
        
    }
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    if($_GET['func'] == "tpb" && isset($_GET['func'])) { 
       tpb($_GET['id_tpb']); 
    }
    
    
        function tpb($id_tpb) {  
    
    
                echo "hai scelto '$id_tpa' & '$id_tpb'";
    
    
        }
    ?>
    Qualcuno è così cortese d spiegarmi dove sbaglio?
    grazie mille, non riesco proprio a capirne il principio

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    qui $('#dati_viaggio).fadeIn(); manca un apice, poi cambia la pagina func.php non usando le funzioni php per popolare le select ma usando la querystring $_GET leggi qui
    Ultima modifica di cavicchiandrea; 27-01-2014 a 21:16
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Salve avrei una domanda, io sto impazzendo cercando di fare una select che se attivata mostra un'altra select con un'altro elenco e se questa a sua volta attivata fa comparire un'ennesima select, per le prime due nessun problema ma quando provo a creare la terza non funziona potete aiutarmi? Questo e' il topic che si avvicina di più alla mia necessità, non ho trovato nulla di più simile.


    $(document).ready(function(){

    var scegli = '<option value="0">Scegli...</option>';
    var attendere = '<option value="0">Attendere...</option>';




    $("select#stato").change(function(){
    var varstato = $("select#stato option:selected").attr('value');
    $.post("areaclienti/class/stato.subclass.php", {id_stato:varstato}, function(data){
    $("#jprovincia").html(data);
    });
    });
    $("select#provincia").change(function(){
    var varprov = $("select#provincia option:selected").attr('value');
    $.post("areaclienti/class/stato.subclass.php", {id_provincia:varprov}, function(data){
    $("#jcitta").html(data);
    });
    });
    });
    ###########php########
    <div class="container">
    <div class="row">
    <div class="form-group">
    <label for="inputNatoIn" class="col-sm-2 control-label">Nazione</label>
    <div class="col-sm-10 col-lg-5">
    <!-- Stato di nascita-->
    <select class="form-control" id="stato" name="statonascita">
    <option>Seleziona ...</option>
    <option value="italia">Italia</option>
    <option value="estero">Estero</option>
    </select>
    <!-- Fine Stato di nascita-->
    </div>
    </div>
    </div>
    </div>
    <!-- Crea la select dopo la selezione dello stato-->
    <div class="container" id="jprovincia">
    </div>


    <div class="container" id="jcitta">
    </div>




    ######## classi#########
    if(isset($_POST['id_stato']))
    {

    if($_POST['id_stato'] === "italia"){

    echo '
    <div class="row">
    <div class="form-group">
    <label for="inputNatoIn" class="col-sm-2 control-label">Paese</label>
    <div class="col-sm-10 col-lg-5">
    <!-- Paese di nascita-->

    <select class="form-control" name="luogonascita" id="provincia">';
    echo $opt->ShowRegioneProvincia();
    echo '
    </select>

    <!-- Fine Paese di nascita-->
    </div>
    </div>
    </div>';



    }elseif($_POST['id_stato'] === "estero"){



    }

    }

    if(isset($_POST['id_provincia'])){

    echo '
    <div class="row">
    <div class="form-group">
    <label for="inputNatoIn" class="col-sm-2 control-label">Città</label>
    <div class="col-sm-10 col-lg-5">
    <!-- Paese di nascita-->

    <select class="form-control" name="luogonascita" id="citta">';
    echo $opt->Showcitta();
    echo '
    </select>

    <!-- Fine Paese di nascita-->
    </div>
    </div>
    </div>';



    }


    vi prego qualcuno può aiutarmi?

  4. #4
    Quote Originariamente inviata da rgagliani Visualizza il messaggio
    Salve avrei una domanda, io sto impazzendo cercando di fare una select che se attivata mostra un'altra select con un'altro elenco e se questa a sua volta attivata fa comparire un'ennesima select, per le prime due nessun problema ma quando provo a creare la terza non funziona potete aiutarmi? Questo e' il topic che si avvicina di più alla mia necessità, non ho trovato nulla di più simile.


    vi prego qualcuno può aiutarmi?
    credo che a te serva questo: http://blueicestudios.com/chained-se...es/three-tier/

    qui il download dello script: http://blueicestudios.com/chained-se...ned_select.zip

  5. #5
    grazie mille è esattamente quello che cercavo

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