-3

我试图将值传递给 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 />';
  }
?>

$routeHTML在 div 标签中回显

4

6 回答 6

4

您忘记为 javascript 添加引号:

$routeHTML .= '<p>Planned By '.$user.'</p><a href="#" onclick="fetchdata(\''.$title.'\')" title="Load This Map">'.$title.'</a><br />';
于 2013-07-19T09:33:48.863 回答
1

你必须用这样的''引号包围你的字符串......

$routeHTML .= '<p>Planned By '.$user.'</p><a href="#" onclick="fetchdata(\''.$title.'\')" title="Load This Map">'.$title.'</a><br />';
于 2013-07-19T09:33:56.983 回答
0

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

于 2013-07-19T09:34:42.037 回答
0

你忘了转义引号,这样做:

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

否则 php 将无法'正确呈现,并且您会收到错误消息。

于 2013-07-19T09:35:22.310 回答
0

您可以通过这种方式将 php 变量传递给 javascript 函数:

<input type="button" value="Send" onClick="js_function('<?php echo $var; ?>')">
于 2013-07-19T09:36:12.677 回答
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-* 属性的更多信息:http ://webdesign.tutsplus.com/tutorials/htmlcss-tutorials/all-you-need-to-know-about-the-html5-data-attribute/

于 2013-07-19T10:00:30.240 回答