【问题标题】:How can I return data to an AJAX call with Perl?如何使用 Perl 将数据返回到 AJAX 调用?
【发布时间】:2012-07-04 17:53:47
【问题描述】:

我有一个 HTML 文件,它会生成一个网页。用户可以在网页上输入一些cmets。为了保存 cmets,我使用 JQuery/AJAX 调用 perl 脚本。这将在数​​据库中添加一行。

在添加记录后的 perl 脚本中,我再次获取相同的记录。现在我想在我的页面中显示该记录而不刷新页面。 (我知道我们可以在 jquery 中使用 append)我的问题是如何将该记录从 perl 返回到 HTML 页面,包括 HTML 标记和所有。

这是将添加新记录的部分。

<span class="requester"> 
    <span>**message**</span> 
    </br>
    <i> - **username**  </i>
    <button class="deleteResponse" id="id"> delete </button> 
    <hr>
 </span>

消息和用户名是我将从 MYSQL 查询中获取的项目。\

这是我用来显示数据的。

 $("#"+getpID+" textarea ").before(htmlcode).fadeIn();

而htmlcode是

var htmlcode = '<span class="requester"> <span>message</span> </br>     <i> - username 0 seconds ago </i> <button class="deleteResponse" id="id"> delete </button> <hr> </span>';

我希望从 perl 脚本返回数据而不是 htmlcode。 任何帮助将不胜感激。谢谢sapna

【问题讨论】:

  • 到目前为止你有什么?
  • 我能够显示硬编码数据。我想显示从 perl 返回的数据,但不知道如何从 perl 中返回 HTML 代码
  • 如果您使用 jQuery 的 AJAX 调用它,只需打印一个有效的标题和数据。 jQuery 会处理剩下的事情。

标签: jquery html ajax perl


【解决方案1】:

您的 Perl 脚本需要打印您希望通过 AJAX 调用返回的数据。这是基本的 CGI。

#!/usr/bin/perl
use strict;
use warnings;
use CGI;
my $cgi = CGI->new;

# do your database stuff here

my $result = "HTML CODE"; # this is your result

print $cgi->header('text/html');
print $result;

在你的AJAX call 中,做这样的事情(我派对从 jQuery 文档中提取):

$.get('ajax/test.html', function(data) {
  $("#"+getpID+" textarea ").before(data).fadeIn();
  alert('Load was performed.');
});

请注意,我没有对此进行测试。

【讨论】:

  • 我尝试了你建议的方式.....这行抛出异常。 **my $result = " message - 0 秒前的用户名
    "; ** # 这是你的结果
  • 什么样的错误?如果用" 引用字符串,则不能在字符串中使用"。请改用qq-operator。这里的 doc 也应该可以工作,但是 perlop如果终止字符串被引用,则使用的引号类型决定了文本的处理方式。,所以不要使用 ',留下它们出去!
  • 不,你没有。它被删除了,因为它不是一个答案。请编辑您的问题并添加更新。但无论如何,上述评论应该可以解决您的问题。
  • 解决了这个问题后,我还有一个问题,我要返回的 HTML 代码包含一些变量。在这种情况下如何将 perl 嵌入 HTML 中?辛巴克,你能帮我解决这个问题吗?
  • 我已经做到了。您发布的内容没问题,您只需从&lt;&lt;'HERE' 部分中删除',因为Perl 将其视为单引号'string',不会填写您的变量。要么说&lt;&lt;HERE&lt;&lt;"HERE",要么只使用qq(见上文)。
猜你喜欢
  • 2011-01-25
  • 1970-01-01
  • 2017-10-22
  • 2011-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-29
相关资源
最近更新 更多