将PHP变量传递给java脚本函数

时间:2013-07-19 09:30:42

标签: php javascript html

我试图将值传递给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

6 个答案:

答案 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/