PHP:尝试将href HTML属性放入`echo`

时间:2016-10-09 07:25:25

标签: php echo href

我似乎无法获得echo的网址。我想建立一个打开谷歌地图的链接:

enter image description here

我无法弄清楚我的代码有什么问题:

$query = mysql_query("SELECT * FROM cev")or die(mysql_error());
while($row = mysql_fetch_array($query))
{
  $name = $row['sitecode'];
  $lat = $row['latitude'];
  $lon = $row['longitude'];
  $type = $row['sitetype']; 
  $city = $row['city']; 
  $id = $row['id'];

  echo("addMarker($lat, $lon,'<b>$name</b><a href="editcev.php?id=' . $row['id'] . '">View</a><br><br/>$type<br/>$city');\n");

3 个答案:

答案 0 :(得分:2)

您必须修改引号:

 echo "addMarker($lat, $lon,'<b>$name</b><a href=\"editcev.php?id={$row['id']}\">View</a><br><br/>$type<br/>$city');\n";

替代方式

Here document

echo <<<EOS
addMarker($lat, $lon, '<b>$name</b><a href="editcev.php?id={$row['id']}">View</a><br><br/>$type<br/>$city');

EOS;

<强>级联

echo "addMarker($lat, $lon, '<b>$name</b>" .
  "<a href=\"editcev.php?id={$row['id']}\">View</a>" .
  "<br><br/>$type<br/>$city)";

使用addshashes

addMarker看起来像JavaScript函数。您可以通过addslashes预先处理HTML字符串:

$html = <<<EOS
<b>$name</b><a href="editcev.php?id={$row['id']}">View</a><br><br/>$type<br/>$city
EOS;
$html = addslashes($html);

echo "addMarker($lat, $lon, '$html');\n";

推荐

我建议使用支持语法高亮的编辑器。

了解PHP strings。特别是逃避的问题。

最后,我不建议在PHP代码中编写任何 HTML / JavaScript。请改用SmartyTwig等模板引擎。

答案 1 :(得分:0)

好像你正在尝试在echo语句中使用方法。如果你想使用方法,变量或一些php的东西,你不应该在大多数情况下使用引号,除非它是一个eval特色对象或方法。

试试这个

echo addmarker($lat, $lon, 
               '<b>'.$name.'</b> <a href="'.editcev.php?id=.' '.$row['id'].
               ".'>View</a><br><br/>'
               .$type.
               '<br/>'
               .$city.');'."\n");

我不知道你的具体情况,但我认为这有效

答案 2 :(得分:-1)

  echo("addMarker(".$lat.",".$lon.",<b>".$name."</b><a href=ditcev.php?id=" . $row['id'] . ">View</a><br><br/>".$type."<br/>".$city.");\n");