为了管理大约800个条目的列表,我使用了一个带有droplists的表单来过滤出各种自定义字段,包括两个自定义日期。使用表达式引擎dynamic_parameters对结果进行过滤。
{exp:channel:entries
channel="jobb_ticket"
search:display="published|updated|delivered"
status="Open|Closed"
limit="9999"
dynamic_parameters="search:namn|search:produkt|search:kund|search:producent|search:materialdag|search:utgivningsdag" orderby="materialdag|utgivningsdag"
date_field="materialdag"
date_field_start="<? if(!empty($_POST['startdate'])){echo date('Y-m-d H:i', $_POST['startdate']);} ?>"
date_field_stop="<? if(!empty($_POST['startdate'])){echo date('Y-m-d H:i', $_POST['startdate'] + 604799);} ?>"
sort="asc|asc"
}过滤后的列表在每一行之后包含一个提交按钮,以便能够编辑一些自定义字段,链接到一个包含安全黑客表单的fancybox。
在html中:
<div class="col_btn_registrera"><a class="registrera_produkt fancybox.ajax" href="{site_url}client/client_register_ajax/index_thewineagency/{entry_id}"><input type="submit" name="" value="Registrera" /></a></div>在标题中
$('.registrera_produkt').fancybox({
Width : 340,
Height : 100,
autoDimensions : false
}); 在fancybox中,safecracker窗体
<html>
<head>
[removed]
$(document).ready(function(){
$('#publishForm').ajaxForm({
dataType: 'json',
success: function(data) {
if (data.success) {
} else {
alert('Failed with the following errors: '+data.errors.join(', '));
}
}
});
});
$('#publishForm').submit(function(){
$.fancybox.close();
$(parent.document)[0].location.reload(true);
return false;
});
[removed]
<link href="{path=css/_ee_saef_css}" type="text/css" rel="stylesheet" media="screen">
<link href="{site_url}css/gridlocker.css" rel="stylesheet" type="text/css">
</head>
<body>
{exp:safecracker include_jquery="no" channel="jobb_ticket" entry_id="{last_segment}"}
<input type="text" name="produkt" id="produkt" value="{produkt}">br>
<input type="submit" name="submit_button" id="submit_button" value="Uppdatera">
{/exp:safecracker}
</body>
</html> 记录会更新,fancybox窗口会关闭父页面,但不会更新。
如何在提交后更新父页面,但不重置过滤结果?或者,如何使用上次使用的表单值启动新的搜索?
有没有更好的方法呢?
善意地寻求帮助
拉尔夫
发布于 2012-11-07 07:22:30
您可能需要进行一次AJAX调用,检索更新后的列表,并替换父页面上的列表。
https://stackoverflow.com/questions/9000274
复制相似问题