2013-07-19 184 views
-3

即时尝试将一个值传递给一个java脚本函数。但是当我点击链接我得到一个
Uncaught SyntaxError: Unexpected identifier将一个PHP变量传递给一个java脚本函数

这里是代码

<?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标签

回答

4

你忘了加引号的JavaScript呼应$routeHTML

$routeHTML .= '<p>Planned By '.$user.'</p><a href="#" onclick="fetchdata(\''.$title.'\')" title="Load This Map">'.$title.'</a><br />'; 
+0

非常感谢你现在的工作 –

1

你将不得不围绕你的字符串用这样的引号......

$routeHTML .= '<p>Planned By '.$user.'</p><a href="#" onclick="fetchdata(\''.$title.'\')" title="Load This Map">'.$title.'</a><br />'; 
0

您的JS函数的参数未定义(因为解析的HTML缺少引号-JS假定title是未定义的变量)。

0

你忘了逃跑的报价,这样做:

fetchdata(\''.$title.'\') 

否则PHP不能渲染'正确,你会得到一个错误。

0

您可以将PHP变量传递给JavaScript函数以这种方式:

<input type="button" value="Send" onClick="js_function('<?php echo $var; ?>')"> 
0

它一般不建议做内联JS(作为标签的属性)。

所以,我鼓励你从HTML代码中分离出来的JavaScript,像这样:

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- *属性的更多信息:http://webdesign.tutsplus.com/tutorials/htmlcss-tutorials/all-you-need-to-know-about-the-html5-data-attribute/

相关问题