我创建一个页面,该页面应该从数据库中读取数据,将其显示为表格,并允许逐行编辑条目(使用AJAX调用)。以下是问题出现的简要代码片段 -
Javascript:
function editParam(bname, button) {
alert(bname); //this part doesn't happen, the error on console comes up before it
tr = button.parentNode;
while (tr && tr.nodeName.toUpperCase() !== "TR" && tr.nodeName.toUpperCase() !== "BODY") {
tr = tr.parentNode;
}
if (!tr || tr.nodeName.toUpperCase() !== "TR") {
return;
}
//some more code
}
PHP:
//get $row_users['Name']
while ($row_users = mysqli_fetch_array($results)) {
echo "<form method='POST'> //some <tr><td></td></tr>
<button onclick='editParam(".$row_users['Name'].", this)'>Edit</button>
</form>";
}
列名称中的数据类似于&#34; B1&#34;,&#34; C2&#34;等。
按钮时出现错误:未定义B1。
在运行其他文本或数字的代码时,它运行正常。所以我理解我的问题与数据类型有关。但是,我不知道如何解决同样的问题。
非常感谢任何建议,谢谢!
答案 0 :(得分:1)
您需要在$row_users['Name']
周围添加引号,否则它将被解释为JS变量。
"<button onclick='editParam(\"" . $row_users['Name'] . "\", this)'>Edit</button>";