通过ajax调用将文本加载到textarea中

时间:2012-02-05 16:43:11

标签: jquery mysql ajax

我想将从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 consolle所证实的,ID和文本被正确检索。问题是我无法将文本放入textarea:

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

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

3 个答案:

答案 0 :(得分:3)

您需要设置文本区域值。

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

我把它放在头部的空白HTML doc引用查询中,它工作正常。

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

答案 1 :(得分:1)

你试过这个吗?

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

答案 2 :(得分:0)

  

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

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