2014-02-16 79 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>"; 
?> 

乐趣..

相关问题