我想要实现的是用文本显示输入的名称。允许用户单击“编辑”按钮对其进行编辑。表单将替换文本,并且表单必须具有名称的默认值。
我的代码能够执行所述过程。问题是当我单击“保存”按钮时,显示的文本仍然是旧值。它不会更新。
function edit(firstname){
document.getElementById("firstname-div").innerHTML='First Name:<input type="text" name="firstname" value="'+firstname+'">';
}
function save(firstname){
document.getElementById("firstname-div").innerHTML= 'First Name:'+firstname;
}
<div id="firstname-div">
<?php echo "First Name: $firstname<br>"; ?>
</div>
<button type="button" onclick="edit('<?php echo $firstname ?>')">edit</button><br>
<button type="button" onclick="save('<?php echo $_POST['firstname']?>')">save</button><br>
我知道它与<button type="button" onclick="save('<?php echo $_POST['firstname']?>')">save</button>
有关。 $_POST['firstname']
的值仍然相同。
关于如何解决此问题的任何想法?还是其他使用纯JavaScript的实现?
答案 0 :(得分:1)
当您刚接触Web开发时,最好尝试更多有关javascript和php的教程,以了解它们如何在客户端和服务器端工作。
为什么这不起作用?
为了访问$_POST
,您必须从客户端向服务器提交http发布请求。
回答您的问题。
(请记住,我只会在客户端显示用户输入,这不会更改您的数据库或任何服务器端变量。)
<button type="button" onclick="save()">save</button><br>
function edit(firstname){
var firstname_old = document.getElementById("firstname-div")
//Set id="FirstName" to your input field
firstname_old.innerHTML= 'First Name:<input type="text" id="FirstName" name="firstname" value="'+ firstname +'">';
}
function save(){
var firstname_new = document.getElementById("FirstName").value
document.getElementById("firstname-div").innerHTML = firstname_new
}
希望这将有助于在不重新加载页面的情况下进行修复。