【问题标题】:How to append a div via PHP and AJAX Post如何通过 PHP 和 AJAX Post 附加 div
【发布时间】:2011-10-20 03:37:04
【问题描述】:

美好的一天。我正在尝试使用 php 制作在线测验应用程序。这个想法是,表单将为问题添加一个文本字段,并在其下方添加四个其他文本字段用于答案,每个字段都有一个单选按钮来确定哪个是正确的。然后在表单下方是一个添加新问题按钮,该按钮将调用 ajax 发布功能。问题不是附加到目标 div,而是 php 代码替换了 div 本身的内容。 php有没有办法追加到div而不是替换它的内容?

【问题讨论】:

    标签: php html ajax


    【解决方案1】:

    PHP 是服务器端的,它不能在浏览器中做任何事情,只能传递内容。

    要添加 div,请在页面中使用 Javascript,例如

    var el = document.getElementById('idoftarget');
    el.innerHTML += '<div>new stuff</div>
    

    ...我想。我总是使用 jQuery:

    $('#idoftarget').append('<div>new stuff</div>');
    

    【讨论】:

    • 不,php 始终是服务器端,而客户端脚本是 Javascript。通常,您知道如何在 PHP 语言/语法/框架中执行的操作可以翻译成 Javascript。
    • 虽然这通常被认为是不好的做法,但您可以通过您的 PHP 脚本来做同样的事情。 echo "&lt;script&gt;$('#idoftarget').append('&lt;div&gt;new stuff&lt;/div&gt;');&lt;/script&gt;"; 当你像这样使用 PHP 时要小心,因为你必须考虑到 PHP 在其他东西之前运行,所以你可能无法得到你想要的确切效果(取决于你在做什么)。要回答您的其他问题,您可以拥有一个单独的 PHP 文件并简单地从脚本中调用它,这基本上就是您所要求的,也是一个更好的解决方案。
    【解决方案2】:

    您如何处理 ajax 响应?也许相反(因为你在这里没有代码,这是一个猜测)

    document.getElementById('someDiv').innerHTML=ajaxResponseText;
    

    你想要的

    document.getElementById('someDiv').innerHTML+=ajaxResponseText;
    

    (追加而不是覆盖)

    【讨论】:

      【解决方案3】:

      这是正确的:

      document.getElementById('exampleDIV').innerHTML+=ajaxResponseText;
      

      【讨论】:

        猜你喜欢
        • 2017-07-21
        • 2013-09-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-04
        • 2018-12-12
        • 1970-01-01
        • 2023-01-18
        • 1970-01-01
        相关资源
        最近更新 更多