【问题标题】:Can ajax be used for faceting/sorting?ajax 可以用于分面/排序吗?
【发布时间】:2014-07-12 05:49:46
【问题描述】:

我创建了一个带有流行度、high_to_low 和 low_to_high 选项的选择。我希望页面使用 ajax 代码动态响应这些选项

var http_option = createRequestObject();

function verifyRequest() 
   {
     var option = document.getElementById("option").value;
     if ( option ) 
       {
       var url = 'respond.pl?option='+option;
       http_option.open('get', url );
       http_option.onreadystatechange = handleResponse;
       http_option.send(null);
       }
   }     

function handleResponse() 
   {
       if(http_option.readyState == 4 && http_option.status == 200)
       {
       var response = http_option.responseText; // Text returned FROM perl script
       if(response) { // UPDATE ajaxTest content
       document.getElementById("id_id").innerHTML = response;  
       }
   }

如果选项的值为 1,则图像显示为存储在 DB 中。
如果选项为 2,图像将按降序显示,
如果选项为 3,则图像将按升序显示

respond.pl 包含根据选项进行排序的适当代码,并在指定的 div 标记中显示图像。 问题是页面只响应选项一次,下次更改选项时,选项的值显示“on”而不是数字 1,2,3

我不仅需要它来对图像进行排序,还需要它来进行刻面。如果这不是正确的选择,建议使用适当的方法。

【问题讨论】:

  • 如果你得到“on”,你可能有一个没有“value”属性的复选框输入
  • 这就是问题所在。 respond.pl 代码包含一个复选框,我为其应用了 ajax 调用方法。

标签: javascript ajax perl facet


【解决方案1】:

看起来您的服务器端程序正在返回 HTML。我认为在这种情况下这可能是一个错误。我建议改为返回 JSON。然后,您可以为您的选择器创建一个 onChange 事件处理程序,它只是重新排序显示。几乎可以肯定有许多 jQuery 插件可以做到这一点,而无需编写太多代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-17
    • 2019-02-22
    • 1970-01-01
    • 2013-05-26
    • 2021-06-03
    相关资源
    最近更新 更多