【问题标题】:jquery.post() and phpjquery.post() 和 php
【发布时间】:2009-06-29 16:33:17
【问题描述】:

我正在使用 $().post 和 php 来更改

脚本成功 - firebug 清楚地显示 textarea 标签之间的文本已更改,我的小警报会触发。

但是,用户看不到更改。在 Firefox 中根本不会发生更改,而在 IE 中,textarea 更新最多延迟 10 秒。

这是我正在使用的 jquery:

$(document).ready(function() {
    $('#pv_list li:first').addClass('hilite');
    $("input[name='db_entries']:first").attr('checked', 'checked');
    $("input[name='db_entries']").click(function () {
        $.post("changeEntry.php", {post: $(this).val()}, function(data) { 
            $("textarea").text(data);alert('done');
        });
        $('#pv_list li').removeClass('hilite');
        $(this).parent().addClass('hilite');
    });
});

一开始我以为是因为页面没有验证,但是验证了xhtml过渡。

真正困扰我的是,我早先让它工作了,但不知道我改变了什么。

【问题讨论】:

    标签: php jquery


    【解决方案1】:

    【讨论】:

    • 谢谢大家。在 google 上进行站点搜索非常简单,因此我尝试为任何类似于 google 出现的过去主题的问题添加“存档”部分。
    • 是的,site:stackoverflow.com 比内置的站点搜索要好大约一百万倍。我仍然在等待他们对此有所了解并整合谷歌搜索。没有API吗?
    • Paolo,是的,他们可以很容易地实现它——我实际上是今天在他们的网站上为客户设置的。话虽如此,您可以同时从 Firefox 搜索所有 SO 站点:meta.stackexchange.com/questions/879/…
    【解决方案2】:

    您是否尝试过使用val() 来设置 textarea 的值而不是 text()?

    $.post("changeEntry.php",{post: $(this).val()},
          function(data) {
              $("textarea").val(data);
              alert('done');
    });
    

    【讨论】:

    • 好吧。我认为这仅适用于标签名称中实际具有“输入”的标签。工作得很好。谢谢:)
    • 想想你会如何使用普通的 DOM - 它仍然是 textarea.value - 而不是 textarea.nodeValue 或 textarea.data 或其他任何东西。
    【解决方案3】:

    使用load()函数不是更方便吗?

    $("input[name='db_entries']").click(function () {
        $("#outputarea").load("?", {"paramName":this.value});
    });
    

    【讨论】:

    • onclick 处理程序的全部目的是设置 textarea 元素的内容,不是吗?这就是 load() 的作用。
    【解决方案4】:

    我不确定,但一种可能性是您应该这样做:

    function(data){
      $("textarea").attr("value",data);
      alert('done');
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多