0

在我的 Web 应用程序(使用 Zend 框架)中,当向数据库添加新实体时,它应该检查该实体之前是否已添加和删除。(从数据库中删除实体时,该特定记录的“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,然后警报提示。但是重定向不起作用。

谁能帮我解决这个问题?

提前致谢

4

2 回答 2

1

首先确保变量数据包含您所期望的:也许它有一些标题导致调用出错(但您应该在控制台中发现它)。

如果您可以 alert() 正确的字符串,则尝试另一种方法: location 有一些安全限制(即 iframe 无法更改其容器的位置);您可能无法在未命名的函数调用中对其进行操作,但您可能可以在超时后进行操作(它对我有用!)所以而不是

document.location.href='./yoururl?'+data 

setTimeout("document.location.href='yoururl?"+data +"';",10);

这将在更广泛的范围内运行它并且应该会成功。

于 2013-01-17T08:28:47.043 回答
0

我唯一需要做的就是在函数return false里面放一个。submit否则,由于按钮是提交按钮,因此表单将被提交。

于 2013-01-17T11:35:37.103 回答