#php #echo #href
#php #echo #href
Вопрос:
Кажется, я не могу получить URL echo
-адрес. Я хочу создать ссылку для открытия Карт Google:
Я не могу понять, что не так с моим кодом:
$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");
Ответ №1:
Вы должны исправить кавычки:
echo "addMarker($lat, $lon,'<b>$name</b><a href="editcev.php?id={$row['id']}">View</a><br><br/>$type<br/>$city');n";
Альтернативные способы
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. Вы можете предварительно обработать строку HTML с помощью addslashes
:
$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. Особенно вопрос экранирования.
Наконец, я бы не рекомендовал писать какой-либо HTML / JavaScript в коде PHP. Вместо этого используйте шаблонизаторы, такие как Smarty или Twig.
Комментарии:
1. для 2 ответов вы могли бы использовать heredocs / newdocs для этого. php.net/manual/en/language.types.string.php
Ответ №2:
Похоже, вы пытаетесь использовать метод внутри оператора 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");
Я не знаю вашей точной ситуации, но я думаю, что это работает
Ответ №3:
echo("addMarker(".$lat.",".$lon.",<b>".$name."</b><a href=ditcev.php?id=" . $row['id'] . ">View</a><br><br/>".$type."<br/>".$city.");n");