2013-01-17 55 views
0

在我的Web應用程序(使用Zend Framework)向數據庫添加新實體時,應檢查此實體是否已被添加和刪除。 (從數據庫刪除實體時,該特定記錄的「狀態」列更新爲0(零)。)在用戶確認時使用jquery重定向到新頁面

如果實體先前已刪除,系統要求確認以編輯以前刪除的記錄,或添加一個新的紀錄。如果用戶需要編輯以前添加的記錄,則應將用戶重定向到編輯頁面。

這個檢查和重定向是使用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

我曾嘗試在if條件內放置alert(),並提示警報。但重定向不起作用。

任何人都可以幫助我嗎?

在此先感謝

+0

「../admin_mapping/edit?id="+data – gurvinder372

+0

它的值是什麼?它返回一個整數。該值正在返回。我也檢查過 –

+0

使用'window.location.href =「../admin_mapping/edit?id=」+ encodeURIComponent(data)'而不是? – Alexander

回答

0

我需要做的唯一事情就是把return false放在submit函數中。否則,由於按鈕是一個提交按鈕,表單會被提交。

1

首先確保變量數據包含你所期望的:也許它有一些頭部進行調用出問題(但你應該在控制檯中發現這一點)。

如果您可以alert()正確的字符串,然後嘗試另一種方法:位置有一些安全限制(即iframe無法更改其容器的位置);你可能不能夠操縱它在一個無名函數調用,但你也許能夠從一個超時(它爲我工作!)所以不是

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

寫這樣做

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

這將在更廣的範圍內運行,並且應該成功。

+0

感謝您的答案......這也可以..但不是我的問題的解決方案 我發現它自己.....我需要在'submit'函數中加入'return false',否則表單會被提交。 –

相關問題