2014-02-16 109 views
0

確定它是01:16 AM這裏,我無法解決這個簡單的問題。 我使用不可見的iframe上傳照片並將一些文本發送到數據庫。 iframe指向upload.php,並返回隱藏文本字段與insert_id(數據庫中最後一行的ID) - 我需要這些信息用於其他功能。如何使用JavaScript或JQuery從隱形iframe中獲取隱藏字段值

下面是我的IFRAME:

<iframe name="image_upload_frame" id="image_upload_frame" height="1" width="1" style="visibility: hidden"> 

它是空的開頭,但圖片上傳後,它有這個網站:

echo '<img src="'.$sImage.'" />'; 
    echo '<input type="hidden" id="session_id" value="'.$wpdb->insert_id.'" />'; 

這裏是我的javascript來獲取會話)ID值:

var row_id = $("#image_upload_frame").contents().find("#session_id"); 
    alert(row_id.val()); 

它不起作用。調試器什麼都不說 - 它只是停止,沒有錯誤,沒有通知。

任何人都可以幫忙嗎?我想聽聽其他選項如何將數據從iframe傳遞到主窗口。

感謝,

+0

什麼時候你的JavaScript火?在創建隱藏的iframe之後或在該iframe的頁面加載事件之後立即創建?如果它在iframe準備好之前觸發,則$(「#image_upload_frame」)。contents()。find(「#session_id」)將不會得到結果。 –

+2

*「好的,這是上午01點16分,我無法解決這個簡單的問題。」* - 睡個好覺,明天早上你可能會用一種解決方法醒來,就在第一杯咖啡和早餐之後;它有一個新的開始;-) –

+0

我注意到的一件事是,你似乎「使用會話。我可能有一個解決方案,但我需要看到更多的代碼。如果你不使用會話,那麼這可能是一個解決方案,它也適用於JS;在某種程度上。 –

回答

0

如果我沒有錯的假設,你的HTML是這樣的:

<html> 
<body> 
    <iframe id="hidden_iframe" name="hidden_iframe" style="display: none"></iframe> 
    <form method="post" target="hidden_iframe" action="./test1.php" encrypt="multipart/form-data"> 
     <input type="file" name="file_upload" /> 
     <input type="submit" value="submit" /> 
    </form> 
</body> 

我的想法是在服務器端,你編寫JavaScript代碼來調用您的客戶端的javascript(實際是iframe調用主窗口)。因此您的客戶端代碼應該如下所示:

<html> 
<body> 
    <iframe id="hidden_iframe" name="hidden_iframe" style="display: none"></iframe> 
    <form method="post" target="hidden_iframe" action="./test1.php" encrypt="multipart/form-data"> 
     <input type="file" name="file_upload" /> 
     <input type="submit" value="submit" /> 
    </form> 
    <script> 
    function callFromServerSide(params){ 
     alert(params); 
    }   
    </script> 
</body> 

和你的服務器端應該是這樣的(在我的情況是test1.php):

<?php 
$last_insert_id=100; 
echo " 
<script> 
window.top.callFromServerSide('".$last_insert_id."');      
</script>"; 
?> 

樂趣..

相關問題