有人可以告诉我这个代码出错的地方吗?点击链接时什么也没发生。首先我给PHP一个用户的bio,下面有一个链接来编辑它(请记住这个脚本是在一个包含在main中的外部文件中)...
<?php
/* bio was retrieved earlier... */
echo '<div id="bio">
<p>'.$row["bio"].'<br>
<a href="javascript:editBio(\''.$row["bio"].'\');">Edit</a></p>
</div>';
?>
然后我在主文件中有一个javascript函数,我想用一个表单替换div ...
function editBio(bio) {
document.getElementById("bio").innerHTML = '
<form action="profile.editbio.php" method="post">
<textarea cols="40" rows="10" name="bio" id="bio" maxlength="275">'+ bio +'</textarea><br>
<input type="submit" value="Update"></form>
';
}
我想要的是让用户点击“编辑”链接,让他们的生物立即变成一个textarea,在那里他们可以编辑它。
检查控制台时出现此错误:
Uncaught SyntaxError: Unexpected end of input
任何帮助都表示赞赏,如果你能提供更短,更简单的代码(虽然我认为你不可能),那就太棒了!
答案 0 :(得分:2)
必须连接新的行值,如下所示:
function editBio(bio) {
document.getElementById("bio").innerHTML = '<form action="profile.editbio.php" method="post">'
+'<textarea cols="40" rows="10" name="bio" id="bio" maxlength="275">'+ bio +'</textarea><br>'
+'<input type="submit" value="Update"></form>';
}
答案 1 :(得分:0)
我很确定这是因为您的HTML中的换行符:当您的线路掉线时,它会突破到下一行而不是溢出。
它应该是这样的:
document.getElementById("bio").innerHTML = '<form action="profile.editbio.php" method="post"><textarea cols="40" rows="10" name="bio" id="bio" maxlength="275">'+ bio +'</textarea><br><input type="submit" value="Update"></form>';
括号不会进行换行。
另外,正如jsickles所提到的,这一行会给你一个错误:
<a href="javascript:editBio('.$row["bio"].');">Edit</a>
你需要逃避内括号:
<a href="javascript:editBio('.$row[\'bio\'].');">Edit</a>
答案 2 :(得分:0)
最大的问题是你没有在函数调用参数周围使用引号。
<a href="javascript:editBio(\''.$row["bio"].'\');">Edit</a>
答案 3 :(得分:-2)
不会这个代码...
javascript:editBio('.$row["bio"].');
需要我在&#39; a&#39; onclick事件而不是href atrribute?
例如
<a href="javascript:editBio('.$row["bio"].');">Edit</a>
应该是
<a href="" onclick="editBio('.$row["bio"].');">Edit</a>