Функция Javascript, допускающая переменные PHP

Я рисую полный пробел, почему это не работает. Я могу сделать это с одной переменной, проходящей через, но не с двумя. Когда я использую фактические числа, такие как getnt(1,2) он работает. Он просто не работает с двумя переменными PHP.

  <script type="text/javascript"> function getnt(nid,pnid) { window.location = "nt.php?nid=" + nid + "&pnid=" + pnid; } </script> <body> <?php echo "<a href='#' onclick='getnt($nid,$pnid)'>VIEW</a>"; ?> </body> 

Я могу заставить код работать с echo "<a href='nt.php?nid=$nid&pnid=$pnid'>VIEW</a>"; , но это нехорошо, если я хочу добавить в предупреждения и javascript команды.

Solutions Collecting From Web of "Функция Javascript, допускающая переменные PHP"

Если ID и pnID являются строками, заключите их в скобки, подобные этому.

 <body> <?php echo "<a href='#' onclick=\"getnt('$nid','$pnid')\">VIEW</a>"; ?> </body> 

Если все еще не работает, вы можете отлаживать свой код

  1. Просмотрите исходный код в браузере, убедитесь, что он генерируется правильно.
  2. Поместите некоторые предупреждающие сообщения в функцию javascript. Установите Firebug, если у вас есть Firefox или см.

  3. Консоль Javaascript, если вы получаете ошибки javascript.

Вы всегда можете попробовать:

 <script type="text/javascript"> function getnt(nid,pnid) { window.location = "nt.php?nid=" + nid + "&pnid=" + pnid; } </script> <body> <a href="#" onclick="getnt(<?php echo $nid; ?>,<?php echo $pnid; ?>)">VIEW</a> </body> 

На ваш вопрос, вероятно, лучше всего ответить, посмотрев на предоставленный HTML-источник.

В любом случае, вот как я это сделаю, используя грациозную деградацию

 <script type="text/javascript"> function getnt(element) { var href = element.href; var nid = element.getAttribute("data-nid"); var pnid = element.getAttribute("data-pnid"); return true; } </script> <p><a href="nt.php?nid=<?php echo $nid ?>&amp;pnid=<?php echo $pnid ?>" data-nid="<?php echo $nid ?>" data-pnid="<?php echo $pnid ?>" onclick="return getnt(this)">VIEW</a></p>