【发布时间】:2011-10-20 03:37:04
【问题描述】:
美好的一天。我正在尝试使用 php 制作在线测验应用程序。这个想法是,表单将为问题添加一个文本字段,并在其下方添加四个其他文本字段用于答案,每个字段都有一个单选按钮来确定哪个是正确的。然后在表单下方是一个添加新问题按钮,该按钮将调用 ajax 发布功能。问题不是附加到目标 div,而是 php 代码替换了 div 本身的内容。 php有没有办法追加到div而不是替换它的内容?
【问题讨论】:
美好的一天。我正在尝试使用 php 制作在线测验应用程序。这个想法是,表单将为问题添加一个文本字段,并在其下方添加四个其他文本字段用于答案,每个字段都有一个单选按钮来确定哪个是正确的。然后在表单下方是一个添加新问题按钮,该按钮将调用 ajax 发布功能。问题不是附加到目标 div,而是 php 代码替换了 div 本身的内容。 php有没有办法追加到div而不是替换它的内容?
【问题讨论】:
PHP 是服务器端的,它不能在浏览器中做任何事情,只能传递内容。
要添加 div,请在页面中使用 Javascript,例如
var el = document.getElementById('idoftarget');
el.innerHTML += '<div>new stuff</div>
...我想。我总是使用 jQuery:
$('#idoftarget').append('<div>new stuff</div>');
【讨论】:
echo "<script>$('#idoftarget').append('<div>new stuff</div>');</script>"; 当你像这样使用 PHP 时要小心,因为你必须考虑到 PHP 在其他东西之前运行,所以你可能无法得到你想要的确切效果(取决于你在做什么)。要回答您的其他问题,您可以拥有一个单独的 PHP 文件并简单地从脚本中调用它,这基本上就是您所要求的,也是一个更好的解决方案。
您如何处理 ajax 响应?也许相反(因为你在这里没有代码,这是一个猜测)
document.getElementById('someDiv').innerHTML=ajaxResponseText;
你想要的
document.getElementById('someDiv').innerHTML+=ajaxResponseText;
(追加而不是覆盖)
【讨论】:
这是正确的:
document.getElementById('exampleDIV').innerHTML+=ajaxResponseText;
【讨论】: