【问题标题】:Getting Uncaught ReferenceError when passing to a function in javascript传递给javascript中的函数时出现未捕获的ReferenceError
【发布时间】:2018-03-27 17:22:53
【问题描述】:

我正在尝试使用基于 buttonclick 的表中的数据填充表单。我正在将数据传递给 javascript 函数。

<?php 
$sql=mysqli_query($con, "SELECT FacultyEducationalId, FacultyDegreeName, FacultyCollegeName, FacultyPassingYear FROM facultyeducationaltable WHERE FacultyId=".$_SESSION['userid']);
while ($row=mysqli_fetch_array($sql))
{
?>
<tr class="info">
<td><?php echo $row['FacultyDegreeName'] ?></td>
<td><?php echo $row['FacultyCollegeName'] ?> </td>
<td><?php echo $row['FacultyPassingYear'] ?> </td>
<td>
<button onclick="modifyEdu(<?php echo $row['FacultyEducationalId'].','.$row['FacultyDegreeName'].','.$row['FacultyCollegeName'].','.$row['FacultyPassingYear']; ?>)" id="modifyEdu" class="btn btn-primary">Modify</button>                                                                 
</td>
</tr>
<?php
}
?>

函数如下:

<script type="text/javascript">
  function modifyEdu(id, deg, uniname, passyear) {
var facultyeduid=parseInt(id);
var degname=deg;
var uniname=uniname;
var passyear=passyear;
console.log("1");
document.getElementById("degreename").value="2";
document.getElementById("universityname").value=uniname;
document.getElementById("passyear").value=passyear;
}
</script>

我得到:未捕获的 ReferenceError:x 未在 HTMLButtonElement.onclick 中定义。我该如何解决? (x 是 'FacultyDegreeName' 中的值)

【问题讨论】:

  • 好吧,你不要用引号括起来听起来像。查看源代码,您就会明白为什么。

标签: javascript php mysqli


【解决方案1】:

您缺少使用单引号 '\' 转义字符串:

<button onclick="modifyEdu('<?php echo $row['FacultyEducationalId'].'\',\''.$row['FacultyDegreeName'].'\',\''.$row['FacultyCollegeName'].'\',\''.$row['FacultyPassingYear']; ?>')" id="modifyEdu" class="btn btn-primary">Modify</button>

因为你会得到modifyEdu(foo,bar,2018) 而不是modifyEdu('foo','bar','2018')

在第一种情况下,foo 将被视为未定义变量并导致 "ReferenceError" 错误。

【讨论】:

  • 这行得通。非常感谢。我不知道这是问题所在。
猜你喜欢
  • 1970-01-01
  • 2012-08-02
  • 2017-09-06
  • 1970-01-01
  • 1970-01-01
  • 2014-08-26
  • 2022-01-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多