Я рисую полный пробел, почему это не работает. Я могу сделать это с одной переменной, проходящей через, но не с двумя. Когда я использую фактические числа, такие как 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 команды.
Если ID и pnID являются строками, заключите их в скобки, подобные этому.
<body> <?php echo "<a href='#' onclick=\"getnt('$nid','$pnid')\">VIEW</a>"; ?> </body>
Если все еще не работает, вы можете отлаживать свой код
Поместите некоторые предупреждающие сообщения в функцию javascript. Установите Firebug, если у вас есть Firefox или см.
Консоль 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 ?>&pnid=<?php echo $pnid ?>" data-nid="<?php echo $nid ?>" data-pnid="<?php echo $pnid ?>" onclick="return getnt(this)">VIEW</a></p>