0

我已经搜索了一个多小时并尝试了许多示例,但没有一个能满足我的需要。从 JavaScript 我可以用 PHP 或 HTML 显示必要的变量,<b id="citynm"></b>但我需要制作 citynm $citynm。我第一次尝试在 AJAX 中查找,但只能通过单击按钮或刷新页面来使其工作。

我需要运行 JavaScript 以获取 citynm,然后将其$citynm用于 PHP 在任何页面上使用,而无需再次运行 JS。JS 只在进入站点时运行一次。但是$citynm会在不同需要的几个页面上运行(例如echo "You live in ".$citynm)。

4

2 回答 2

0

最好的方法是将 citynm 所需的值存储到会话变量中,如下所示:

$_SESSION['citynm'] = $citynm

您必须在页面加载时或通过 ajax 执行此操作。然后,您可以在任何您想要的页面中使用 $_SESSION['citynm'],因为它是全局的。

于 2013-09-29T17:58:23.227 回答
0

用例 1:通过用户输入

在您的 html 文档中:

<input type="text" name="citynm" id="citynm" value="Brussels">

在您的 javascript 文件中(在此处使用 jquery 以提高可读性):

(function(){

    $('#citynm').on('blur',function(){
    // when the input value has changed, post its value to server.
var citynm = $(this).val();
        $.post('http://domain.com/path/to/your/php/file.php',{citynm: citynm},function(data){

// if the request is successful, the following script will be executed.
alert("server said: "+data);
        });
    });
})(jQuery);

在 file.php 文件中:

<?php
    session_start();
    if(isset($_POST['citynm']) && strlen($_POST['citynm'])>0){
      $_SESSION['citynm'] = $_POST['citynm'];
    }
echo "citynm is ".  $_SESSION['citynm'];

?>

用例 2:没有用户输入

   var cityname = city.short_name; 
if (status == google.maps.GeocoderStatus.OK) { document.getElementById("citynm").innerHTML = cityname; }

    (function(){

                $.post('http://domain.com/path/to/your/php/file.php',{citynm: cityname},function(data){

        // if the request is successful, the following script will be executed.
        alert("server said: "+data);
                });
        })(jQuery);
于 2013-09-29T19:28:22.997 回答