在我的Web应用程序(使用Zend Framework)中向数据库添加新实体时,应检查此实体是否先前已添加和删除。 (从数据库中删除实体时,该特定记录的“STATUS”列更新为0(零)。)
如果实体之前已删除,系统会要求确认编辑以前删除的记录,或添加新记录。如果用户需要编辑以前添加的记录,则应将用户重定向到编辑页面。
使用jQuery完成此检查和重定向。这是我正在使用的jQuery代码:
$("input[name=btnSubmit]").click(function(){
var name = $("input[name=txtTblPrefix]").val();
var parameters = 'name='+name;
$.ajax({
url: '../admin_mapping/get-id',
async:false,
data:parameters,
type:'POST',
dataType: 'text',
success: function(data)
{
var res = confirm("There is a record already added to the database for "+name+". Do you want to edit it?");
if(res)
{
window.location.replace("../admin_mapping/edit?id="+data);
}
}
});
});
在这段代码中,除了重定向之外,一切都很完美。我已分别测试了行window.location.replace("../admin_mapping/edit?id="+data);
,它运行正常。即使confirm()
函数返回true
。
我已尝试在alert()
条件中放置if
,并提示警告。但重定向不起作用。
有人可以帮我解决这个问题吗?
提前致谢
答案 0 :(得分:1)
首先确保变量数据包含您期望的内容:可能它有一些标题使调用出错(但您应该在控制台中发现它)。
如果你可以提醒()正确的字符串,那么尝试另一种方法:location有一些安全限制(即iframe无法改变其容器的位置);您可能无法在未命名的函数调用中对其进行操作,但您可以从超时(这对我起作用!)这样做而不是
document.location.href='./yoururl?'+data
写
setTimeout("document.location.href='yoururl?"+data +"';",10);
这将在更广泛的范围内运行,并且应该成功。
答案 1 :(得分:0)
我唯一需要做的就是在return false
函数中添加submit
。否则,当按钮是提交按钮时,表单将被提交。