Php iframe不';上传后无法更新';AJAX';上传技巧

Php iframe不';上传后无法更新';AJAX';上传技巧,php,javascript,jquery,ajax,Php,Javascript,Jquery,Ajax,我正在使用iframe技术上载表单中包含的文件 它工作得很好,我甚至给自己发了一封包含该文件的电子邮件。唯一的问题是我想从iframe获取信息,比如文件大小。但是,我无法从php脚本更新iframe的内容。我尝试在发送电子邮件之前将“echos”放在线路上(因此它实际上到达了那里),但是一旦iframe的jQuery的“load”函数启动,iframe中就什么都没有了。甚至尝试过“检查元素”和“查看源”,都是空的 我错过了什么明显的东西吗?我在SO或谷歌上找不到有同样问题的人 表格: PHP控制

我正在使用iframe技术上载表单中包含的文件

它工作得很好,我甚至给自己发了一封包含该文件的电子邮件。唯一的问题是我想从iframe获取信息,比如文件大小。但是,我无法从php脚本更新iframe的内容。我尝试在发送电子邮件之前将“echos”放在线路上(因此它实际上到达了那里),但是一旦iframe的jQuery的“load”函数启动,iframe中就什么都没有了。甚至尝试过“检查元素”和“查看源”,都是空的

我错过了什么明显的东西吗?我在SO或谷歌上找不到有同样问题的人

表格:

PHP控制器:

function sendResume()
{
    echo 'ASDFASDFASDFASDF';
    $this->load->library('email');
    $this->email->clear();      
    $this->email->to($this->input->post('email'));
    // ... other fields, attach file (working perfectly)
    $this->email->send();
}

我认为你做错了…
你应该做的是

<form ...>
   <input type="file" .../>
   <input type="submit" .../>
</form>
<iframe id="myIframe"></iframe>

$('form').submit(function(){
   $(form).attr('target'. 'myIframe');
});

$('form')。提交(函数(){
$(form.attr('target.'myIframe');
});
我不知道这是否管用,但我记得很久以前我在你做这件事的时候不知怎么试过了,我不得不改成今天的样子。
为了方便起见,您是否可以尝试将输入按钮更改为输入提交?删除onclick并将submitForm()函数中的代码放入表单的提交事件中,就像我上面所做的那样(删除调用submit()和$('#submitTarget').load(function()和$('#submitTarget').html('content before'))

您只需更改目标,真的

以下是解决方案: 线路

由于某种原因在DOM中未更新,我不知道,如果发生这种情况,您必须使用:

console.log( $('#submitTarget').contents().find('body').html() );

似乎加载iframe内容的请求被服务器上的某个内容阻止,并且没有返回HTML。有几个地方可能会出错。回答此问题需要更多信息。但是,请阅读此问题/答案,它应该会有所帮助:我在stackoverflow中检查了链接,但没有任何内容是我没有尝试的e回答。我知道使用所有代码会更好,但它使用codeigniter框架,因此您需要整个应用程序进行测试。无论如何,我会发布我可以发布的内容,如果有人知道CI,请随意查看您可以做什么。是的,这就是我正在做的,尝试直接在表单标记中手动设置目标,没有更改。除此之外s、 如果它上传文件并通过电子邮件发送,这意味着目标已相应设置。完成,在原始问题中感谢建议,尝试过,没有更改,它也发送带有附件的电子邮件,但旧内容仍在框架中。你能看一看吗?查看源代码,都在那里,它正在工作该死的,tried你的例子,它也不起作用!所以我在Chrome中尝试了它,它起作用了,我的代码也起作用了,问题是Opera浏览器。DOM中
的内容是实际
..
标记中出现的任何内容。这是为了在不支持帧时用作回退,但通常被忽略。jQuery
.contents()
函数将
视为特殊情况,并返回框架元素内部的文档。在其他情况下,它将返回元素本身的内容(仍然是当前文档的一部分)。
<form ...>
   <input type="file" .../>
   <input type="submit" .../>
</form>
<iframe id="myIframe"></iframe>

$('form').submit(function(){
   $(form).attr('target'. 'myIframe');
});
console.log( $('#submitTarget').html() ); // Display iframe's content
console.log( $('#submitTarget').contents().find('body').html() );