Variabile da Javascript a Php tutto Ok ma ho un problema..

vitelli

Utente Attivo
23 Mar 2012
41
0
0
Ragazzi allora dopo aver eseguito lo script, passo il valore che mi interssa ad un pagina php esterna ma la cosa avviene in un tempo troppo piccolo che non ho neanche il tempo di guardare i risultati dello script.

HTML:
<html>  
<head>  
<?php 
$indirizzo =$_POST["indirizzo2"];
$_SESSION['indirizzo']=$indirizzo;
echo 'Il tuo indirizzo è '.$indirizzo.' e dista ';
?>

   <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>  
   <title>Calcolo distanza con l'ausilio di Google Map Api V3</title>  
   <script type="text/javascript"  
           src="http://maps.google.com/maps/api/js?sensor=false"></script> 
</head>  
<body style="font-family: Arial; font-size: 13px; color: black;">  
   <div id="map" style="width: 400px; height: 300px;"></div>  
   <div id="duration">Tempo di arrivo: </div>  
   <div id="distance">Distanza: </div>  


 <script type="text/javascript">  
var indirizzo=("<? echo "$indirizzo";?>");
alert (indirizzo);
   var directionsService = new google.maps.DirectionsService(); 
   var directionsDisplay = new google.maps.DirectionsRenderer(); 
 
   var myOptions = { 
     zoom:7, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
   } 
 
   var map = new google.maps.Map(document.getElementById("map"), myOptions); 
   directionsDisplay.setMap(map); 
 
   var request = { 
       origin: 'Via Tasso 8 Sorrento',  
       destination: indirizzo, 
       travelMode: google.maps.DirectionsTravelMode.DRIVING 
   }; 
 
   directionsService.route(request, function(response, status) { 
      if (status == google.maps.DirectionsStatus.OK) { 
 
         // Display the distance: 
         document.getElementById('distance').innerHTML +=  
            response.routes[0].legs[0].distance.value + " meters"; 
			 // Display the duration: 
         document.getElementById('duration').innerHTML +=  
            response.routes[0].legs[0].duration.value + " seconds"; 
 
         directionsDisplay.setDirections(response); 
		var valore=response.routes[0].legs[0].distance.value;
		window.parent.location="paginaprovadati.php?valore="+ valore;
		 //window.location.href="paginaprovadati.php?valore="+ valore;
		 
      }

   }); 

   </script>
   
<h2> Reindirizzamento in corso...</h2>
<p> Questa Pagina ha un tempo di ritardo</p>

</body>
</html>
in questa parte dello script passo il valore alla pagina che mi interessa, il problema è che lo fa in maniera troppo veloce! mi ci vorrebbe un tasto o un timer, ho provato svariati modi ma niente da fare non mi funziona nessun metodo.
HTML:
var valore=response.routes[0].legs[0].distance.value;
window.parent.location="paginaprovadati.php?valore="+ valore;
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao potresti ritardare l'esecuzione con setTimeout

Codice:
setTimeout("window.parent.location='paginaprovadati.php'", 5000);
il redirect partirà dopo 5 secondi
 

vitelli

Utente Attivo
23 Mar 2012
41
0
0
Avevo già pensato alla soluzione con Timeout ma non c'è verso di farla funzionare!!! ho provato in tutti i modi possibili, ora vi posto un esempio dove mi reindirizza ma il tempo non cambia..

HTML:
setTimeout(window.parent.location='paginaprovadati.php?valore='+ valore, 5000);
impostando così rimane il tutto invariato, ho provato anche ad aumentare a dismisura il valore del timeout ma purtroppo non c'è stato niente da fare! :(
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Hai dimenticato gli apici

Codice:
setTimeout("window.parent.location='paginaprovadati.php?valore='+ valore", 5000);
 

vitelli

Utente Attivo
23 Mar 2012
41
0
0
mettendo gli apici lo script non funziona proprio! è come se questa funzione bloccasse l'intera esecuzione..mi sta fancedo impazzire questo problema
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
come te lo postato io in locale mi funziona

riposta lo script completo con la modifica
 

vitelli

Utente Attivo
23 Mar 2012
41
0
0
Anzi ora ho notato che mettendo gli apici, non ho proprio il rindirizzamento alla pagina successiva ma lo script funziona perfettamente!
 

vitelli

Utente Attivo
23 Mar 2012
41
0
0
Quello che ho scirtto io è questo

HTML:
setTimeout ("window.parent.location='paginaprovadati.php?valore='+ valore", 5000);
in questo caso lo script funziona ma non c'è il redirect alla paginaprovadati.php
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ho provato questa pagina con FF E IE e funziona

HTML:
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script type="text/javascript">
            var valore = 'ciao';            
            setTimeout("window.parent.location='paginaprovadati.php?valore='+ valore", 5000);
        </script>
    </head>
    <body>
        
    </body>
</html>
controlla bene la sintassi non vedo ilmotivo per cui non dovrebbe funzionara

ora mi rileggo il tuo script
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Puoi provare cosi:

HTML:
<html>  
    <head>  
        <?php
        $indirizzo = $_POST["indirizzo2"];
        $_SESSION['indirizzo'] = $indirizzo;
        
        echo 'Il tuo indirizzo è ' . $indirizzo . ' e dista ';
        ?>

        <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>  
        <title>Calcolo distanza con l'ausilio di Google Map Api V3</title>  
        <script type="text/javascript"  
        src="http://maps.google.com/maps/api/js?sensor=false"></script> 
    </head>  
    <body style="font-family: Arial; font-size: 13px; color: black;">  
        <div id="map" style="width: 400px; height: 300px;"></div>  
        <div id="duration">Tempo di arrivo: </div>  
        <div id="distance">Distanza: </div>  


        <script type="text/javascript">  
            var indirizzo=("<?php echo $indirizzo; ?>");
            
            var directionsService = new google.maps.DirectionsService(); 
            var directionsDisplay = new google.maps.DirectionsRenderer(); 
 
            var myOptions = { 
                zoom:7, 
                mapTypeId: google.maps.MapTypeId.ROADMAP 
            } 
 
            var map = new google.maps.Map(document.getElementById("map"), myOptions); 
            directionsDisplay.setMap(map); 
 
            var request = { 
                origin: 'Via Tasso 8 Sorrento',  
                destination: indirizzo, 
                travelMode: google.maps.DirectionsTravelMode.DRIVING 
            }; 
 
            directionsService.route(request, function(response, status) { 
                if (status == google.maps.DirectionsStatus.OK) { 
 
                    // Display the distance: 
                    document.getElementById('distance').innerHTML +=  
                        response.routes[0].legs[0].distance.value + " meters"; 
                    // Display the duration: 
                    document.getElementById('duration').innerHTML +=  
                        response.routes[0].legs[0].duration.value + " seconds"; 
 
                    directionsDisplay.setDirections(response); 
                    var valore=response.routes[0].legs[0].distance.value;
                   
                    setTimeout("reindirizza(" + valore + ")", 5000);
                    //window.location.href="paginaprovadati.php?valore="+ valore;		 
                }

            }); 
            function reindirizza(valore) {
                window.parent.location='paginaprovadati.php?valore='+ valore
            }
        </script>

        <h2> Reindirizzamento in corso...</h2>
        <p> Questa Pagina ha un tempo di ritardo</p>

    </body>
</html>
dimenticavo:
se $indirizzo non è settato non viene richiamata
 
Ultima modifica: