【问题标题】:How can i output this content to a textarea?如何将此内容输出到文本区域?
【发布时间】:2015-04-25 21:58:46
【问题描述】:

我试图将文本从 php 页面传递到我的 html 页面,正如 Chris Bakers 的回答(javascript,不是 jquery)所描述的那样。 Call php function from javascript

如果我使用普通文本 (id=output),代码有效,但我想将文本输出到文本区域 (id=text1) 而不是普通文本,只是更改 id 不起作用。

这是我的代码:

<html>
 <head>
 </head>
 <body>
 <textarea id="text1" style="background-color: #969696" cols="50" rows="10" readonly></textarea>
 <div id="output">waiting for action</div>
 </body>
 <script>


    function getOutput() {
    var value = document.getElementById("artikelnr").value;
    var file = selectedValue()+".csv";
      getRequest(
          "verarbeitung.php?eingabe="+value+"&eingabe2="+file, // URL for the PHP file
           drawOutput,  // handle successful request
           drawError    // handle error
      );
      return false;
    }  
    // handles drawing an error message
    function drawError() {
        var container = document.getElementById('text1');
        container.innerHTML = 'Bummer: there was an error!';
    }
    // handles the response, adds the html
    function drawOutput(responseText) {
        var container = document.getElementById('text1');
        container.innerHTML = responseText;
    }
    // helper function for cross-browser request object
    function getRequest(url, success, error) {
        var req = false;
        try{
            // most browsers
            req = new XMLHttpRequest();
        } catch (e){
            // IE
            try{
                req = new ActiveXObject("Msxml2.XMLHTTP");
            } catch(e) {
                // try an older version
                try{
                    req = new ActiveXObject("Microsoft.XMLHTTP");
                } catch(e) {
                    return false;
                }
            }
        }
        if (!req) return false;
        if (typeof success != 'function') success = function () {};
        if (typeof error!= 'function') error = function () {};
        req.onreadystatechange = function(){
            if(req.readyState == 4) {
                return req.status === 200 ? 
                    success(req.responseText) : error(req.status);
            }
        }
        req.open("GET", url, true);
        req.send(null);
        return req;
    }


 </script>
</html>

【问题讨论】:

    标签: javascript php html


    【解决方案1】:

    因为您应该使用.value 而不是.innerHTML。

    参考:JavaScript get TextArea input via .value or .innerHTML?

    【讨论】:

    • 感谢您的快速回复,这行得通!但是现在它输出了整个源代码(例如 等)是否可以只输出文本?
    • 那将是另一个问题:stackoverflow.com/questions/822452/…
    • 谢谢,在那个问题的帮助下,我得到了它的帮助。
    【解决方案2】:

    不是setInnerHtml,textarea有value属性。不太合乎逻辑,但很好......

    惹你生气了:

    document.getElementById("bla").value = "test";
    &lt;textarea id="bla" readonly &gt;Initial Value&lt;/textarea&gt;

    【讨论】:

    • 谢谢你的作品!但是现在它输出了整个源代码(例如 等)是否可以只输出文本?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多