【问题标题】:pass javascript variable to another php page将 javascript 变量传递给另一个 php 页面
【发布时间】:2015-05-21 12:14:02
【问题描述】:

我正在研究 google maps api,我必须计算从当前位置到用户选择的目的地的距离。 目的地列表存储在 javascript 数组中:

var details = [
    {
        'title': 'Sobo Central Mall',
        'address': 'PTMM Malvia Marg,Tardeo Road,Mumbai.',
        'lat': '18.975684',
        'lng': '72.811910',
        'open': 'NA',
        'close': 'NA',
        'sex': 'Unisex',
        'place': 'mall'
    }
    //and so on...
];

我在列表中显示的:

for (i = 0; i < details.length; i++) {
    var place= details[i].title;
    var add= details[i].address;
    document.getElementById('list').innerHTML +='<p>'+ place+ '<br><div id="address"> ' + add +'</div></p><br/><hr/>';

在这里我想调用另一个 php i.e.direction.php 文件,我可以将 add 变量传递给该文件

<a href="direction.php?add="+add+">dir</a>

在direction.php中:

<?php $add = $_GET['add'];?>
<script>
document.getElementById('desti').innerHTML = "<?php echo $add ?>";
</script>

但是$add 没有任何价值。 任何人都可以解决错误吗?或建议任何不同的方式将 js 变量传递给另一个 php 文件。

【问题讨论】:

  • 您在哪里呈现该链接?我只看到显示地址的代码。
  • 首先在浏览器中检查元素
  • 在页面上添加一个隐藏变量,并使用 javascript 将 add 的值分配给它。单击链接时调用一个 javascript 函数,该函数将重定向到附加值的所需页面。比如 window.location.href='directions.php?add='+document.getElementById("
  • 还要记住一点,地址可能包含可能会破坏查询字符串的字符,因此请使用encodeURI 转义地址。

标签: javascript php google-maps


【解决方案1】:

在html中不能这样调用add变量

所以你必须使用javascript来替换url。

像这样为你的锚标签提供 id

<a id="myAnchor" href="direction.php?add=default_value">dir</a>

最后,当值被插入到变量 add 然后你写这个

document.getElementById("myAnchor").href = "direction.php?add="+add;

希望这会有所帮助

【讨论】:

  • 我的锚标签在 for 循环内,所以它直接采用我猜的值
  • 你能提供那行代码吗?会更有帮助
【解决方案2】:

添加标签得到空值 行情问题:

<a href="direction.php?add='+add+'">dir</a>//single quotes for add

【讨论】:

    【解决方案3】:

    在 html 中,您应该为 div 指定一个类实例名称(例如:ajaxPostHandler) 然后在您的 javascript 中为该 div 分配一个点击事件并触发一个 ajax 发布事件(例如:doAjaxPost())

    $(".ajaxPostHandler).click(function(){
      doAjaxPost();
    })  
    
    function doAjaxPost(){
         $.post('direction.php',{
               add: add
    
            },function(response){
                if(response.success){
                }
                else{
                }
            });
       }
    

    HTML

    <div class="ajaxPostHandler">dir</div>
    

    【讨论】:

    • 我不了解 ajax,你能告诉我如何在锚标记中调用 ajax。还是 ajax 会在点击时起作用?
    猜你喜欢
    • 1970-01-01
    • 2015-06-02
    • 1970-01-01
    • 2014-03-23
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2017-11-15
    相关资源
    最近更新 更多