我试图将值传递给java脚本函数。但是当我点击链接时,我得到一个
Uncaught SyntaxError: Unexpected identifier
这是代码
<?php
include_once("php_includes/check_login_status.php");
$routeHTML = '';
$sql = "SELECT user,title FROM route";
$query = mysqli_query($db_conx, $sql);
while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)) {
$title = $row["title"];
$user = $row["user"];
$routeHTML .= '<p>Planned By '.$user.'</p><a href="#" onclick="fetchdata('.$title.')" title="Load This Map">'.$title.'</a><br />';
}
?>
我在div标签中回显$routeHTML
答案 0 :(得分:4)
您忘记为javascript添加引号:
$routeHTML .= '<p>Planned By '.$user.'</p><a href="#" onclick="fetchdata(\''.$title.'\')" title="Load This Map">'.$title.'</a><br />';
答案 1 :(得分:1)
你必须用这样的引号包围你的字符串......
$routeHTML .= '<p>Planned By '.$user.'</p><a href="#" onclick="fetchdata(\''.$title.'\')" title="Load This Map">'.$title.'</a><br />';
答案 2 :(得分:0)
JS函数的参数未定义(因为解析的HTML缺少引号 - JS假定title是未定义的变量)。
答案 3 :(得分:0)
你忘了逃避引号,这样做:
fetchdata(\''.$title.'\')
否则php将无法正确呈现'
并且您收到错误。
答案 4 :(得分:0)
您可以通过以下方式将php变量传递给javascript函数:
<input type="button" value="Send" onClick="js_function('<?php echo $var; ?>')">
答案 5 :(得分:0)
通常不建议使用内联Js(作为标记的属性)。
所以,我鼓励你将javascript与html代码分开,如下所示:
HTML:
$routeHtml = '<p>Planned By '.$user.'</p><a href="#" class="MyLink" data-title="'.$title.'" title="MyTitle">'.$title.'</a><br />';
Js(使用jQuery,但也适用于vanillaJs):
$(document).ready(function(){
$(".MyLink").click(function(e){
fetchData($(this).data("title"))
});
});
请注意data-title
属性,data-*
属性用于存储自定义数据,因此这是在模板中的PHP和Javascript之间交换信息的好方法。
有关data- * attributes的更多信息:http://webdesign.tutsplus.com/tutorials/htmlcss-tutorials/all-you-need-to-know-about-the-html5-data-attribute/