Хочу по клике на ссылку передать два значения в функцию, делаю так:
onclick="gov('.$id.', "info")
при клике получаю ошибку в консоле хрома: Uncaught ReferenceError: info is not defined at HTMLAnchorElement.onclick
Функция: function gov(id, type) { ... }
при передачи одного значения все работает. В чем может быть проблема?
UPD. Заметил что если вторым значением передавать цифру - все работает, а с текстом нет
В зависимости от того, чем является info. Если просто строкой, значит надо писать либо так
onclick="gov('.$id.', 'info')"
либо экранировать двойные кавычки
onclick="gov('.$id.', \"info\")"
в одинарные нельзя, потому что это ссылка в echo '<a ...>';
Значит надо работать с экранированием внутри вывода строки в PHP:
<?php
$id = 10;
echo '<a href="#" onclick="gov('.$id.', \'infoHello\')">click me</a>'
?>
<script>
function gov(id, type) {
alert(id + ', ' + type);
}
</script>
Так не надо делать
echo '<a href="" onclick="gov('.$id.', \'info\')">';
Поскольку у вас есть jQuery, можно сделать, например, так:
$params = htmlspecialchars(json_encode(array('id' => $id, 'type' => 'info')));
echo '<a href="" data-params="' . $params . '">';
Дальше в <script>
$('[data-params]').on('click', function(e) {
var params = $(this).data('params');
gov(params.id, params.type);
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости