【问题标题】:Dispaly jQuery.getJSON 's response data as html将 jQuery.getJSON 'js 响应数据显示为 html
【发布时间】:2012-07-02 21:02:43
【问题描述】:

我需要动态创建两个选择框。我正在使用以下代码

function getAvailableArticlePages()
{
var maga_arti_id=jQuery('#new_article_id').val();
jQuery.getJSON("/admin/availablearticlepages.do?method=getArticlesAvailablePage"
,{maga_arti_id: ""+maga_arti_id+""}, function(data){    
jQuery('#pages td#leftpage select').html(data.Options);
jQuery('#pages td#rightpage select').html(data.Option1);
});        
}

在响应 JSP 页面中我使用以下代码

Options+="<option value=\""+page_id+"\">"+page_name+"</option>";
Options1+="<option value=\""+page_id+"\">"+page_name+"</option>";
out.print("{\"Options\":");
out.print("\""+Options+"\"");   
out.print(",\"Options1\":");
out.print("\""+Options1+"\"");  
out.print("}");

但它没有创建 html 选择框选项。任何人都可以说如何在 jquery.getjson() 方法中响应 html 代码本身 JSP 的内容类型应该是什么

提前致谢 托尼

【问题讨论】:

  • 你会得到什么? ajax 调用后网络选项卡中有什么?你有什么错误吗?
  • 可能是一个逃避问题。在getJSON回调函数中插入console.log(data),在带有控制台的浏览器中查看。

标签: jquery jsp getjson


【解决方案1】:

是否有任何理由需要将 HTML 作为 JSON 对象传递?

看看jQuery函数.load()

这应该能够将选项作为 HTML 直接加载到 select 元素中。

如果您需要使用不同的选项加载两个单独的选择框,那么要么执行两个单独的查询,要么执行一个查询,返回两个选择框及其选项的 HTML。

【讨论】:

  • 感谢您的回复,我同意您的看法,现在我正在使用这些技术。有没有办法将 HTML 代码作为 JSON 对象。内容类型在其中有什么作用??
  • stackoverflow.com/a/5646155/584501 展示了它是如何在 PHP 中完成的,您应该能够在 json.org 列出的 java 库之一中找到与 json_encode 等效的 JSP
  • 正如@Thomas 所说,您的第一个解决方案的问题可能是正确地转义了双引号。要么使用我提到的库,要么查看原始返回值并尝试更正它。
  • out.print("{\"Options\":"); out.print("\""+选项+"\""); out.print(",\"Options1\":"); out.print("\""+Options1+"\""); out.print("}");这是显示它的代码。我也在回调中尝试 data.Options.html 控件在回调时没有出现
猜你喜欢
  • 1970-01-01
  • 2012-11-02
  • 2019-01-01
  • 1970-01-01
  • 2016-04-25
  • 1970-01-01
  • 2021-10-25
  • 2018-04-02
  • 1970-01-01
相关资源
最近更新 更多