2014-02-21 57 views
0

我有一個colorbox根據用戶輸入和數據庫值調用PHP頁面。問題是:通過表單提交取消了顏色框彈出

當我註釋掉「document.getElementById(formID).submit();」下面,顏色框打開罰款。當它被留下時,或者當彩色框呼叫被移除後「返回假」時,彩色框僅僅以白色內容短暫打開,然後立即關閉。

這絕對與由colorbox調用的PHP頁面無關,因爲它在表單提交不會發生的情況下工作正常(並且同一個colorbox調用在另一個不涉及表單提交的函數中工作正常)。但當客戶點擊OK時,我確實需要提交表單!

function reactivate_customer_account (formID, user, server, wowzaStatus, kundenNummer) { 

     var answer = confirm (unescape("Do you want to reactivate the user account?")); 

     if (!answer) return false; 

     document.getElementById(formID).submit(); // this appears to cause the problem! 

     if (wowzaStatus == 999) { 

      $.colorbox({ href: "https://webpageaddress.de/script.php?request=reactivate&user=" + user + "&server=" + server + "&KdNr=" + kundenNummer, iframe: true, width: 450 + "px", height: 700 + "px", transition: "fade" }); 
      return false; 

     } 

    } 

通過調用該函數的代碼:

<form id='kunden_reaktivieren_form_{$row['id']}' method='post' action='' onsubmit='return reactivate_customer_account(\"kunden_reaktivieren_form_{$row['id']}\", \"{$row['FTP_download_benutzername']}\", \"$kunden_server_name\", \"{$row['WowzaStatus']}\", {$row['Kundennummer']});'> 

<input type='hidden' name='session_key' value='$session_key'/> 
<input type='submit' value='Kunden AKTIVIEREN'/> 
... 
</form> 

感謝所有幫助和解釋什麼問題!謝謝!

回答

0

當你這樣做:

document.getElementById(formID).submit(); 

你的頁面會刷新,也不會執行下面的代碼。如果你想讓你的彩盒打開,你應該通過AJAX調用表單提交。

jQuery $.ajax$.post會幫助你。

+0

謝謝,但是如果我想要調用的PHP頁面在colorbox或某種彈出窗口中打開怎麼辦?可以通過$ .ajax或$ .post完成嗎? – user1145075

+0

是的,可以做到。一旦您的響應通過ajax從服務器形成,就調用colorbox代碼。使用onsuccess。 – Bala

+0

在colorbox調用之後不可能有表單提交嗎?那會避免所有額外的努力?或者讓它以某種方式分開,即使表單提交和colorbox調用都依賴於同一個按鈕klick?)。 – user1145075