【问题标题】:How to hyperlink data in popup? [duplicate]如何在弹出窗口中超链接数据? [复制]
【发布时间】:2021-07-07 11:27:00
【问题描述】:

我想在弹出窗口中超链接我的 url 数据,用户可以在其中点击这些网站。但是,它不起作用。

下面是我的源代码:

if ($rowCount > 0) {
    //Array for JSON output
    $rows = array();

    //Get the SQL results
    while($row = $result->fetch_array()){
        $fid = $row["Id"];
        $Name = $row["Name"];
        $address = $row["address"];
        $Star = $row["Star"];
        $latitude = $row["latitude"];
        $longitude = $row["longitude"];
        $hp = $row["hp"];
        $url = $row["url"];

        $rows[] = array(
            "fid" => $fid,
            "Name" => $Name,
            "address" => $address,
            "Star" => $Star,
            "latitude" => $latitude,
            "longitude" => $longitude,
            "hp" => $hp,
            "url" => $url
        );
    }
    echo "var dataPOIs = ";
    //Output to JSON format
    echo json_encode($rows, JSON_NUMERIC_CHECK);
    echo ";\n";
    echo '
    for (var i=0; i<dataPOIs.length; i++){
        L.marker([dataPOIs[i].latitude, dataPOIs[i].longitude],{icon: createIcon(), title:dataPOIs[i].Name}).bindPopup("Name: " + " " + "<b>" + dataPOIs[i].Name + "</b>" + "</br>" + "</br>" + "Star: " + "<b>" + dataPOIs[i].Star + "</b>" + "</br>" + "</br>" + "Address: " + " " + "<b>" + dataPOIs[i].address + "</b>" + "</br>" + "</br>" + "Hp: " + " " + "<b>" + dataPOIs[i].hp + "</b>"  + "</br>" + "</br>" + "Website: " + " " + "<a href='" + dataPOIs[i].url + "'>" + "</a>").addTo(pois);
    }
    ';
}

显示

解析错误:语法错误,意外'" + dataPOIs[i].url + "' (T_CONSTANT_ENCAPSED_STRING),期待';'或','

在弹出行中

【问题讨论】:

  • “没有工作”告诉我们您的问题没有任何用处。请更具体。运行代码时实际发生了什么?你有错误吗?意外的输出/行为?尝试调试您的代码并缩小问题范围。
  • 它显示解析错误:语法错误,意外 '" + dataPOIs[i].url + "' (T_CONSTANT_ENCAPSED_STRING),期待 ';'或弹出行中的“,”
  • 好的。你有什么理由在问题中没有提到这一点?错误消息是非常有用的信息。这次我会这样做,但以后请编辑您的问题,而不是将此类信息添加到 cmets 中。重要的是它应该突出显示。
  • 无论如何,错误是因为您在用' 括起来的PHP 字符串中使用'。你需要逃离内部的's。根据the manual要指定文字单引号,请使用反斜杠 (\) 对其进行转义

标签: javascript php html popup


【解决方案1】:

我可以从您分享的图片链接中看到,您试图在前端的地图上实现工具提示,但您共享了一个后端 (php) 脚本。

这与你的php代码无关。

您应该更加专注于阅读地图的文档(谷歌地图),并了解如何实现带有超链接的工具提示。

您要查找的内容称为信息窗口。

https://developers.google.com/maps/documentation/javascript/examples/infowindow-simple.

附:

学习编写更好的代码。尝试将视图与业务逻辑分开。

【讨论】:

  • but you shared a backend (php) script. ...是的,因为 PHP 代码使用数据库数据并生成一些 JavaScript,然后用于设置地图标记。我不认为你理解代码。另请参阅现在提到特定 PHP 错误消息的更新版本。
  • 是的,我理解了代码,它很乱。下次您应该尝试将视图(html 和 js)与后端逻辑(php)分开。查看文档,您尝试实现的目标称为信息窗口。 developers.google.com/maps/documentation/javascript/examples/…
  • 我认为你误认为我是 OP :-)。这不是我的代码,我不会分离任何东西。如果你理解了代码,那你为什么说问题是“与 PHP 无关”,而这显然是一个 PHP 错误。
  • 是的,很抱歉 :) 但是你为什么不给我投票 :( 如果他将 php 与 javascript 分开,这在某种意义上真的不是 php 错误。地图展示和制作者都是 javascript。我们在这里都是为了教育人们并学习。教给 OP 最好的方法,而不仅仅是回答他们的问题。我已经提供了该问题的地图 javascript 文档的链接。同样,它是 javascript 而不是 php 错误。
  • It is really not a php error in a sense had he seperated the php from javascript...是的,但他没有,所以它仍然是 PHP 错误。你必须面对现实,而不是理想的场景。如果您要建议分离功能作为解决问题的一种手段,那么一个有用的答案实际上会给出一个如何做得更好的例子。但实际上简单/快速的解决方案就是避开有问题的引号
猜你喜欢
  • 2020-05-02
  • 2013-11-26
  • 2017-07-29
  • 2022-01-08
  • 1970-01-01
  • 2017-11-25
  • 2014-11-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多