用php想做一个像大多数论坛那样发帖子时能插入图片的功能。网上查了一下,input type='file' 写在
form中,当form submit时页面会自动更新,如果把target指向一个隐藏的iframe就能实现无刷新上传文
件。文件是能够成功上传了,但是问题出现在后台生成的文件保存路径不能同步更新到当前的页面当中来。所以
不能做到像csdn那样上传完成图片之后能把对应的路径写在编辑框里面。
不知道有什么好的办法能解决这个问题。发现我现在写不动了。求助。
把对应的路径写在编辑框里面?
只能写到 input type=text 或其他控件中,但不能写到 input type=file 中
iframe 需命名或有id,接收程序 echo 图片路径
取回时用
s = document.iframe名.document.body.innerHTML
id 时类似
把对应的路径写在编辑框里面?
只能写到 input type=text 或其他控件中,但不能写到 input type=file 中
iframe 需命名或有id,接收程序 echo 图片路径
取回时用
s = document.iframe名.document.body.innerHTML
id 时类似
quote=引用 1 楼 xuzuning 的回复:]
把对应的路径写在编辑框里面?
只能写到 input type=text 或其他控件中,但不能写到 input type=file 中
iframe 需命名或有id,接收程序 echo 图片路径
取回时用
s = document.iframe名.document.body.innerHTML
id 时类似
大概的程序这样子
html里面<script> function upload(){ $("#formUploadpic").submit() ; } function getPath(){ document.getElementById("ifram").innerHTML ; }</script><form id="formUploadpic" name="formUploadpic" enctype="multipart/form-data" method="post" action="" target="ifram"> <input type="file"><input type="button" value="上传" OnClick="upload.call(this)"></form><iframe style="width:0; height:0" name="ifram"><{$path}></iframe>后台程序function newTopic(){ if (//有文件){ //上传文件返回文件路径 $this->path = 文件保存路径 echo "<script>window.parent.getPath() ;</script>" //就是在这里显示路径为空的,好像没有更新上去一样。 }}
function getPath(){
document.getElementById("ifram").innerHTML ;
}
哪里来的 id='ifram'
何况在 iframe 调用的函数,还是以 iframe 为基准呢
而且关于获取光标位置的问题,在IE下是无解的。只能在webkit浏览器下正常。我测试了一下csdn也是这样的。
而且关于获取光标位置的问题,在IE下是无解的。只能在webkit浏览器下正常。我测试了一下csdn也是这样的。
哪来的 获取光标位置 一说?
引用 6 楼 xjl756425616 的回复:而且关于获取光标位置的问题,在IE下是无解的。只能在webkit浏览器下正常。我测试了一下csdn也是这样的。哪来的 获取光标位置 一说?
真可谓:无知者无畏
//img.my.csdn.net/uploads/201303/16/1363434181_6561.jpg][/img]
function getPath(){
document.getElementById("ifram").innerHTML ;
}
哪里来的 id='ifram'
何况在 iframe 调用的函数,还是以 ifram……
而且关于获取光标位置的问题,在IE下是无解的。只能在webkit浏览器下正常。我测试了一下csdn也是这样的。
真可谓:无知者无畏
只要你不是闭门造车,认真提取别人的意见。怎么会有这样的结论呢?
http://www.baidu.com/baidu?word=%E5%85%89%E6%A0%87%E5%A4%84%E6%8F%92%E5%85%A5&ie=utf-8
这是我以前希望的代码(IE专用)
<SCRIPT> function storeCaret (textEl) { if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate(); } function insertAtCaret (textEl, text) { if (textEl.createTextRange && textEl.caretPos) { var caretPos = textEl.caretPos; caretPos.text =caretPos.text.charAt(caretPos.text.length - 1) == ' ' ?text + ' ' : text; } else textEl.value = text; } </SCRIPT> <FORM NAME="aForm"> <TEXTAREA NAME="aTextArea" ROWS="5" COLS="80" WRAP="soft" ONSELECT="storeCaret(this);" ONCLICK="storeCaret(this);" ONKEYUP="storeCaret(this);"> 这是例子,你可以在这里添加文字、插入文字。 </TEXTAREA> <BR> <INPUT TYPE="text" NAME="aText" SIZE="80" VALUE="我要在光标处插入这些文字"><BR> <INPUT TYPE="button" VALUE="我要在光标处插入上面文本框里输入的文字!" ONCLICK="insertAtCaret(this.form.aTextArea, this.form.aText.value);"> </FORM>
本帖最后由 xuzuning 于 2013-03-16 21:13:41 编辑
只要你不是闭门造车,认真提取别人的意见。怎么会有这样的结论呢?
http://www.baidu.com/baidu?word=%E5%85%89%E6%A0%87%E5%A4%84%E6%8F%92%E5%85%A5&ie=utf-8
这是我以……
至于为什么会消失,可能浏览器机制问题吧,弹出对话框的时候,这时不是鼠标不能点击任何地方吗?就和弹出alert类似~
我也不能特别肯定是不是这个原因,如果有人能做出来就最好了~
引用 13 楼 xuzuning 的回复:
本帖最后由 xuzuning 于 2013-03-16 21:13:41 编辑
只要你不是闭门造车,认真提取别人的意见。怎么会有这样的结论呢?
http://www.baidu.com/baidu?word=%E5%85%89%E6%A0%87%E5%A4%84%E6%8F%92%E5%85%A5&ie=ut……
快点出个 可用的方案