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;
 
Ciao potresti ritardare l'esecuzione con setTimeout

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

il redirect partirà dopo 5 secondi
 
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! :(
 
Hai dimenticato gli apici

Codice:
setTimeout("window.parent.location='paginaprovadati.php?valore='+ valore", 5000);
 
mettendo gli apici lo script non funziona proprio! è come se questa funzione bloccasse l'intera esecuzione..mi sta fancedo impazzire questo problema
 
come te lo postato io in locale mi funziona

riposta lo script completo con la modifica
 
Anzi ora ho notato che mettendo gli apici, non ho proprio il rindirizzamento alla pagina successiva ma lo script funziona perfettamente!
 
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
 
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
 
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:

Discussioni simili