【问题标题】:Load text into textarea via ajax call通过ajax调用将文本加载到textarea
【发布时间】:2012-02-27 09:19:51
【问题描述】:

我想将从 dB 检索到的一些文本加载到 textarea 中。用户点击链接:

<a class="editlink" id="<?php echo $review['id']; ?>" href="#"><?php echo $review['title']; ?></a>

JQuery 将 ID 传递给 GO.PHP:

$(".editlink").click(function() {
    $.get("go.php", {param: $(this).attr('id')}, 
        function(data) {
            $('textarea#area1').html(data);
        });    
    return false;
});

GO.PHP 从 dB 中检索文本:

$qry = mysql_query("SELECT * FROM reviews WHERE id = ".$_GET['param']." "); 
while($review = mysql_fetch_array($qry)) {
    echo $review['description'];
} 

经 Firebug 控制台确认,ID 和文本已正确检索。问题是我无法将文本放入文本区域:

<textarea id="area1" rows="30" cols="55"></textarea>

我尝试过:.html(data)、.text(data)、.val(data) 但没有显示任何内容。 (请注意,dB 中的文本可能包含我想保留的 HTML 标记)。

【问题讨论】:

    标签: jquery mysql ajax


    【解决方案1】:

    您需要设置文本区域的值。

    $("#textareaID").val("value of text area");
    

    我将它放入头部的空白 HTML 文档引用查询中,它工作正常。

    <form>
      <textarea id="test"></textarea>
    </form>
    <script>
        $('#test').val('testing');
    </script>
    

    【讨论】:

    • 我确实试过 "$('textarea#area1').val(data);"但它不显示任何内容。
    • 我确实尝试了你的代码,这一切都对我有用。既然我的回答被接受了,你是解决了这个问题还是其他人接受了?
    【解决方案2】:

    你试过了吗

    $('textarea#area1').attr('value',data);
    

    【讨论】:

    • 嗨,我不太明白。什么是“价值”? 'data' 将由 "echo $review['description'];" 填充并且,如前所述,Firebug 控制台返回输出是正确的。那么什么是“价值”?
    • 查看这篇文章。可能会有一些帮助。 stackoverflow.com/questions/415602/…
    【解决方案3】:

    我尝试过:.html(data)、.text(data)、.val(data) 但没有显示任何内容。

    正如其他答案所述, .val(data) 或 .text(data) 应该可以工作。 不要将 .html(data) 与 textarea 一起使用,因为在 Internet Explorer 中不起作用,因为它会在与 textarea 一起使用时删除 html (try this in IE)。我会使用萤火虫控制台来确保数据已设置,并查看您的网络选项卡以确保一切都正确返回。我的猜测是其他地方有错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多