Pagina 2 di 4 primaprima 1 2 3 4 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 31

Discussione: variabili tra pagine php/ajax

  1. #11
    Utente di HTML.it
    Registrato dal
    Sep 2015
    Messaggi
    29
    Se non avessi GROSSISSIME lacune forse non avrei bisogno di chiedere aiuto!! hehe

    immagino che si potrebbe rifare da capo tutto il progetto per renderlo pi� snello... ma purtroppo non ne ho le capacit�
    provo ad arrabattarmi con quello che so e con quello che trovo in rete...e con l'aiuto dei forum metto delle pezze.
    alur... nella mia ignoranza mi consigli una cosa di questo tipo ?
    -----
    $j("select#comuni").change(function(){
    window.location = $(pippo.php).html(data);
    });
    ----
    ... ma come gli passo le variabili in get?
    penso che mi ribloccher� a breve

  2. #12
    Ma è proprio studiando, provando, fallendo, riprovando che alla fine si impara e si riesce ad arrivare al successo!

    Ti do un suggerimento, guarda questo link (è il link di questa pagina):

    http://forum.html.it/forum/showthread.php?threadid=2951092&pagenumber=2&postid=25440638#post25440638

    Le variabili GET sono in grassetto.
    Perciò se ci fosse un ipotetico codice come questo nel file showthread.php:

    <?php echo $_GET['threadid']; ?>

    L'output sarebbe:

    2951092


    Detto questo, l'assegnazione di windows.location non è corretta!
    Gli devi passare un URL. Perciò riprendendo l'esempio di prima, gli assegnerei:

    http://forum.html.it/forum/showthread.php?threadid=2951092

    Spero di averti spiegato meglio il funzionamento delle variabili passate tramite GET.
    Sei un blogger? Mi serve il tuo aiuto per un innovativo servizio Win-Win tra te e le aziende! Per maggiori informazioni.

  3. #13
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,202
    Io farei così (sempre se ho capito bene il problema).

    1. Cambierei i tuoi metodi di SelectList facendogli prendere la provincia/città come parametro e non direttamente da POST
    Codice PHP:
       public function showProvincie($prov_selezionata ''){
       }

        public function 
    showComuni($provincia$comune_selezionato ''){
             
    $sql ".... WHERE provincia = '$provincia' ..."
             
    ....
        }

        public function 
    showPuntivenditaCITY($comune){
             
    $sql ".... WHERE comune = '$comune' ..."
             
    ....
        } 
    Con $prov_selezionata / $comune_selezionato metti direttamente selected nella option (ti basta un if)

    2. Nella tua home avrai qualcosa del genere:
    Codice PHP:
       <form action="pippo.php" method="POST">
            <
    select name="provincie" onchange="aggiornaComuni()">
             <!-- 
    Questa la riempi con le provincie via ajax o direttamente con php -->
             </
    select>
             <
    select name="comuni">
             <!-- 
    Questa si riempe dalla chiamata ajax
            
    </select>
            <
    input type="submit" value="invia">
       </
    form
    3. Ora nella pagina pippo.php, che dovrebbe essere tipo il pezzo in home, devi verificare se hai le variabili del form in home.
    Se si riempi già le select/punti vendita:
    Codice PHP:
       <?php
        $prov 
    = (isset($_POST['provincie'])) ? $_POST['provincie'] : '';
        
    $comune = (isset($_POST['comune'])) ? $_POST['comune'] : '';
       
    ?>

       <select name="provincie" onchange="...">
          <?php  echo $SelectList->showProvincie($prov?>
       </select>
       <select name="comuni" onchange="...">
              <?php 
               
    if($prov)
                  echo 
    $SelectList->showComuni($prov$comune?>
       </select>
       <div id="puntivendita">
          <?php
            
    if($comune)
                  echo 
    $SelectList->showPuntivenditaCITY($comune?>
       </div>
    PS: Prendilo come uno spunto. Probabilmente ci sono errori qui e là e mancano controlli
    Ultima modifica di boots; 16-02-2017 a 11:24

  4. #14
    Utente di HTML.it
    Registrato dal
    Sep 2015
    Messaggi
    29
    provo a capire questa tua proposta
    nella mia select.class.php aggiungo solo le voci tra parentesi "showProvincie($prov_selezionata = '')" cosa gli sto dicendo? di metterle a 0?
    poi c'� il mio pippo.php che dovr� funzionare autonomamente come ricerca e anche ricevere i risultati dalla home
    qu� avr� anche la parte ajax?
    ...e il file select.php servir� ancora?
    Codice PHP:
    <?php 

    include_once  'select.class.php';
    $opt = new SelectList();

    if(isset(
    $_POST['provincia']))
    {    
        echo 
    $opt->ShowComuni();
        die;
    }

    if(isset(
    $_POST['city']))
    {
        echo 
    $opt->ShowCap();
        die;
    }
    if(isset(
    $_POST['MYCITY']))
    {
        echo 
    $opt->ShowPuntivenditaCITY();
        die;


    ?>

  5. #15
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,202
    Quote Originariamente inviata da spakiz Visualizza il messaggio
    provo a capire questa tua proposta
    nella mia select.class.php aggiungo solo le voci tra parentesi "showProvincie($prov_selezionata = '')" cosa gli sto dicendo? di metterle a 0?
    semplicemente dai un valore di default. In questo modo puoi richiamarla sia così
    Codice PHP:
    $opt->showProvincie(); 
    Nel metodo $prov_selezionata sarà uguale a ''


    Che così:
    Codice PHP:
    $opt->showProvincie($_POST['provincie']); 

    Nel secondo caso metterai selected alla relativa option.


    Il tuo pippo.php funzionerà sia con ajax (ovviamente se lo hai previsto) quando ci sarà l'evento onchange sulle select.
    Tuttavia quando verrà richiamato attraverso il form della home avrà già tutte le scelte mostrate (processate lato server, gli if saranno veri).
    Ovviamente dovrai includere la classe SelectList, istanziarla ed usarla per avere le option (io avevo usato una variabile fittizia $SelectList)


    Se non ho capito male, il tuo select.php viene richimato da ajax. quindi continua a funzionare normalmente (ovviamente con le modifiche alle chiamate dei metodi)
    Ultima modifica di boots; 16-02-2017 a 16:41

  6. #16
    Utente di HTML.it
    Registrato dal
    Sep 2015
    Messaggi
    29
    Scusate i tempi morti ma sono riuscito a rimettermi a lavorarci solo oggi.

    alur... file home.php funziona. seleziono le due tendine e all'invio mi manda i dati

    pippo.php
    da solo funziona... e riesco a vedere le variabili di provincia e comune con
    Codice PHP:
    <?php
        $prov 
    = (isset($_POST['province'])) ? $_POST['province'] : '';
        
    $comune = (isset($_POST['comuni'])) ? $_POST['comuni'] : '';
        echo 
    $prov."/".$comune;
       
    ?>
    ma non riesco ancora a passarli nelle select e mostrare i risultati.

    mi sa c'� qualcosa che mi manca e che non capisco

  7. #17
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,202
    Se fai così, non va ?
    Codice PHP:
       <?php
        
    include_once  'select.class.php';
        
    $prov = (isset($_POST['provincie'])) ? $_POST['provincie'] : '';
        
    $comune = (isset($_POST['comune'])) ? $_POST['comune'] : '';
        
    $SelectList = new SelectList();
       
    ?>
       <select name="provincie" onchange="...">
          <?php  echo $SelectList->showProvincie($prov?>
       </select>
       <select name="comuni" onchange="...">
              <?php 
               
    if($prov)
                  echo 
    $SelectList->showComuni($prov$comune?>
       </select>
       <div id="puntivendita">
          <?php
            
    if($comune)
                  echo 
    $SelectList->showPuntivenditaCITY($comune?>
       </div>
    ovviamente con le modifiche ai metodi di SelectList che ti avevo detto
    Ultima modifica di boots; 24-02-2017 a 16:40

  8. #18
    Utente di HTML.it
    Registrato dal
    Sep 2015
    Messaggi
    29
    metto tutto il codice allo stato attuale

    home.php

    Codice PHP:
        <script type="text/javascript">
            var $j = jQuery.noConflict();
            $j(document).ready(function(){
                

                var scegli = '<option value="0">Scegli...</option>';
                var attendere = '<option value="0">Attendere...</option>';
                
                $j("select#comuni").html(scegli);
                $j("select#comuni").attr("disabled", "disabled");
                $j("select#cap").html(scegli);
                $j("select#cap").attr("disabled", "disabled");
                
                    
                $j("select#province").change(function(){
                    var regione = $j("select#province option:selected").attr('value');
                    $j("select#comuni").html(attendere);
                    $j("select#comuni").attr("disabled", "disabled");
                    $j.post("/punti_vendita/select2.php", {provincia:regione}, function(data){
                        $j("select#comuni").removeAttr("disabled"); 
                        $j("select#comuni").html(data);    
                    });
                });    
                
                $j("select#comuni").change(function(){
                    var provincia = $j("select#comuni option:selected").attr('value');
                    $j.post("/punti_vendita/select2.php", {MYCITY:provincia}, function(data){
                    });
                    
                });        
                
            });
            </script>

        <?php 
        
    include_once 'select.class2.php';
        
    $opt = new SelectList();
        
    ?>

            <div style="clear:both"></div>

            <form action="/punti_vendita/index2.php" method="POST">
                <select id="province" name="province" onchange="ShowComuni()">
                 <?php echo $opt->ShowProvince(); ?> <!-- Questa la riempi con le provincie via ajax o direttamente con php -->
                 </select>
                 <select id="comuni" name="comuni">
                 <option>Scegli...</option><!-- Questa si riempe dalla chiamata ajax-->
                </select>
                <input type="submit" value="invia">
           </form>
    index2.php
    Codice PHP:
            <script type="text/javascript">
            var $j = jQuery.noConflict();
            $j(document).ready(function(){
                

                var scegli = '<option value="0">Scegli...</option>';
                var attendere = '<option value="0">Attendere...</option>';
                
                $j("select#comuni").html(scegli);
                $j("select#comuni").attr("disabled", "disabled");
                $j("select#cap").html(scegli);
                $j("select#cap").attr("disabled", "disabled");
                
                    
                $j("select#province").change(function(){
                    var regione = $j("select#province option:selected").attr('value');
                    $j("select#comuni").html(attendere);
                    $j("select#comuni").attr("disabled", "disabled");
                    $j("select#cap").html(scegli);
                    $j("select#cap").attr("disabled", "disabled");
                    
                    $j.post("/punti_vendita/select2.php", {provincia:regione}, function(data){
                        $j("select#comuni").removeAttr("disabled"); 
                        $j("select#comuni").html(data);    
                    });
                });    
                
                $j("select#comuni").change(function(){
                    $j("select#cap").attr("disabled", "disabled");
                    $j("select#cap").html(attendere);
                    var provincia = $j("select#comuni option:selected").attr('value');
                    $j.post("/punti_vendita/select2.php", {city:provincia}, function(data){
                        $j("select#cap").removeAttr("disabled");
                        $j("select#cap").html(data);    
                    });
                    $j.post("/punti_vendita/select2.php", {MYCITY:provincia}, function(data){
                        /*$("select#puntiv").removeAttr("disabled");*/
                        $j("#puntiv").html(data);
                    });
                    
                });        
                /*****/
                $j("select#cap").change(function(){
                    $j("#puntiv").html(attendere);
                    var pvend = $("select#cap option:selected").attr('value');
                    $j.post("/punti_vendita/select2.php", {cap:pvend}, function(data){
                        /*$("select#puntiv").removeAttr("disabled");*/
                        $("#puntiv").html(data);    
                    });
                    
                });    
                /****/
            });
            </script>

        <?php 
        
    include_once 'select.class2.php';
        
    $opt = new SelectList();

        
    ?>


            <div style="clear:both"></div>
                <form action="?" id="myform">
               <?php
            $prov 
    = (isset($_POST['province'])) ? $_POST['province'] : '';
            
    $comune = (isset($_POST['comuni'])) ? $_POST['comuni'] : '';
            echo 
    $prov."/".$comune;
           
    ?>
                    <div class="sel">Seleziona una Provincia:<br />
                    <select id="province" name="province" >
                        <?php echo $opt->ShowProvince($prov); ?>
                    </select>
                    </div>
                
                    <div class="sel">Seleziona una Citt�:<br />
                    <select id="comuni" name="comuni" onChange="ga('send', 'event', 'punti_vendita', 'scelta_comune',this.value,1);">
                    <?php 
                   
    if($prov)
                      echo 
    $opt->ShowComuni($prov$comune);?>
                    </select>
                    </div>
                
                    <div class="sel">Seleziona un cap:<br />
                    <select id="cap" onChange="ga('send', 'event', 'punti_vendita', 'scelta_cap',this.value,1);" >
                    </select>
                    </div>
               

            <div id="puntiv"><?php if($comune) echo $opt->ShowPuntivenditaCITY($comune); ?></div>

    select.class2.php

    Codice PHP:
        class SelectList
        
    {
            
            protected 
    $conn;
            
                public function 
    __construct()
                {
                    
    $this->DbConnect();
                }
            
                protected function 
    DbConnect()
                {
                    include 
    "db_config.php";
                    
                    
    $this->conn mysql_connect($host,$user,$password) OR die("Impossibile connettersi al database");
                    
    mysql_select_db($db,$this->conn) OR die("Impossibile selezionare il database $db");
                    
                    return 
    TRUE;
                }
                
                public function 
    ShowProvince($prov '')
                
                {
                    
    $sql "SELECT DISTINCT provincia FROM prodotto_p_vendita order BY provincia ";
                    
    $res mysql_query($sql,$this->conn);
                    
    $regioni '<option value="0">scegli...</option>';
                    
    $regioni '<option value="0">scegli...</option>';
                    
                        while(
    $row mysql_fetch_array($res))
                        {
                            
    $regioni .= '<option value="' $row['provincia']  .'">'utf8_encode($row['provincia']) .'</option>';
                        }
                        
                    return 
    $regioni;
                }
                
                public function 
    ShowComuni($prov$comune '')
                {
                    
                    
    $sql "SELECT DISTINCT city FROM prodotto_p_vendita WHERE provincia='$_POST[provincia]' ORDER BY city ASC";
                    
    $res mysql_query($sql,$this->conn);
                    
    $province '<option value="0">scegli...</option>';
                    
                        while(
    $row mysql_fetch_array($res))
                        {
                            
    $province .= '<option value="' $row['city'] . '">'utf8_encode($row['city']) . '</option>';
                        }
                        
                    return 
    $province;
                }
                
                
                public function 
    ShowCap()
                {
                    
    $sql "SELECT DISTINCT cap FROM prodotto_p_vendita WHERE city='$_POST[city]' ORDER BY cap ASC";        
                    
    $res mysql_query($sql,$this->conn);    
                    
    $comuni '<option value="0">scegli...</option>';
                    
                        while(
    $row mysql_fetch_array($res))
                        {
                            
    $comuni .= '<option value="' $row['cap'] . '">' $row['cap'] .'</option>';
                            
                        }
                            return 
    $comuni;
            
                        }
                
                
    /******/
                
    public function ShowPuntivenditaCITY($comune)
                {
                    
                                
                    
    $sql "SELECT distinct  name, address, phoneno, cap, city 
        FROM prodotto_p_vendita  WHERE city='
    $_POST[MYCITY]' order BY name";
                    
    $res mysql_query($sql,$this->conn);
                    
    $puntiv '<p>PUNTI VENDITA:</p><div class="rowtop"><div class="col1">Nome</div><div class="col2">Indirizzo</div><div class="col3">Telefono</div><div class="col3">Mappa</div></div>';
                        while(
    $row mysql_fetch_array($res))
                        {
                        
    $puntiv .=  '<div class="rowe"><div class="col1"><b>'.$row['name'].'</b></div><div class="col2">' $row['address'] . '</div><div class="col3"><a id="chiama_pv" onClick="ga(\'send\', \'event\', \'punti_vendita\', \'chiamata_pv\',\'' .$row['name'] .'\',1);" href="tel:'utf8_encode($row['phoneno']) .'">'utf8_encode($row['phoneno']) .'</a></div><div class="col3"><a href="https://www.google.it/maps/place/'.$row['city'] .' '.$row['cap'] .' '.$row['address'].'" target="_blank">mostra mappa</a></div></div>';
                        }
                    return 
    $puntiv;
                }
            

                public function 
    ShowPuntivendita()
                
                    {
                    
                    
    $test $_SESSION['codice'] ;                
                    
    $sql "SELECT  distinct name, address, phoneno, cap, city FROM prodotto_p_vendita WHERE cap='$_POST[cap]' order BY name";
                    
    $res mysql_query($sql,$this->conn);
                
    $puntiv '<p>PUNTI VENDITA:</p><div class="rowtop"><div class="col1">Nome</div><div class="col2">Indirizzo</div><div class="col3">Telefono</div><div class="col3">Mappa</div></div>';
                        while(
    $row mysql_fetch_array($res))
                        {
                    
                            
    $puntiv .=  '<div class="rowe"><div class="col1"><b>'.$row['name'].'</b></div><div class="col2">' $row['address'] . '</div><div class="col3"><a id="chiama_pv" onClick="ga(\'send\', \'event\', \'punti_vendita\', \'chiamata_pv\',\'' .$row['name'] .'\',1);" href="tel:'utf8_encode($row['phoneno']) .'">'utf8_encode($row['phoneno']) .'</a></div><div class="col3"><a href="https://www.google.it/maps/place/'.$row['city'] .' '.$row['cap'] .' '.$row['address'].'" target="_blank">mostra mappa</a></div></div>';
                        
                        }
                    return 
    $puntiv;
                

                }    
                
        } 

    select2.php
    Codice PHP:
        include_once  'select.class2.php';
        
    $opt = new SelectList();

        if(isset(
    $_POST['provincia']))
        {    
            echo 
    $opt->ShowComuni($prov);
            die;
        }
        if(isset(
    $_POST['city']))
        {
            echo 
    $opt->ShowCap();
            die;
        }
        if(isset(
    $_POST['MYCITY']))
        {
            echo 
    $opt->ShowPuntivenditaCITY($comune);
            die;
        } 
        if(isset(
    $_POST['cap']))
        {
            echo 
    $opt->ShowPuntivendita();
            die;
        } 

  9. #19
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,202
    A parte che devi modificare le funzioni. Adesso gli passi il parametro ma non lo usi (continui ad usare $_POST).

    Credo che il problema sia javascript:

    codice:
    $j("select#comuni").html(scegli);
    $j("select#comuni").attr("disabled", "disabled");
    $j("select#cap").html(scegli);
    $j("select#cap").attr("disabled", "disabled");
    Così "resetti" la select dei comuni. tuttavia la provincie dovresti vedere, no?

  10. #20
    Utente di HTML.it
    Registrato dal
    Sep 2015
    Messaggi
    29
    purtroppo no ... neanche le provincie.
    le modifico cos�?
    public function ShowComuni($prov, $comune = '')
    {

    $sql = "SELECT DISTINCT city FROM prodotto_p_vendita WHERE provincia='$prov' ORDER BY city ASC";
    $res = mysql_query($sql,$this->conn);
    $province = '<option value="0">scegli...</option>';

    while(
    $row = mysql_fetch_array($res))
    {
    $province .= '<option value="' . $row['city'] . '">'. utf8_encode($row['city']) . '</option>';
    }

    return
    $province;
    }
    public function ShowPuntivenditaCITY($comune)
    {


    $sql = "SELECT distinct name, address, phoneno, cap, city
    FROM prodotto_p_vendita WHERE city='
    $comune' order BY name";
    $res = mysql_query($sql,$this->conn);
    $puntiv = '<p>PUNTI VENDITA:</p><div class="rowtop"><div class="col1">Nome</div><div class="col2">Indirizzo</div><div class="col3">Telefono</div><div class="col3">Mappa</div></div>';
    while(
    $row = mysql_fetch_array($res))
    {
    $puntiv .= '<div class="rowe"><div class="col1"><b>'.$row['name'].'</b></div><div class="col2">' . $row['address'] . '</div><div class="col3"><a id="chiama_pv" onClick="ga(\'send\', \'event\', \'punti_vendita\', \'chiamata_pv\',\'' .$row['name'] .'\',1);" href="tel:'. utf8_encode($row['phoneno']) .'">'. utf8_encode($row['phoneno']) .'</a></div><div class="col3"><a href="https://www.google.it/maps/place/'.$row['city'] .' '.$row['cap'] .' '.$row['address'].'" target="_blank">mostra mappa</a></div></div>';
    }
    return
    $puntiv;
    }

    poi devo modificare anche qualcosa in select2.php?

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