0

我有一个图片上传,它使用 iframe + php 上传图片 + 在页面上显示而不刷新(有点像预览)。

我希望能够向 iframe 和 php 脚本发送一个变量(它始终是一个整数,它是一个自动递增的 mysql ID),这样任何编辑/重新上传等都会像以前一样影响同一个表行。

所以澄清一下:

  1. 我有一个整数存储在 js 变量中
  2. 在文件输入的“更改”上,我需要以某种方式通过 iframe 将此变量发送到 php 脚本,php 脚本可以在其中解释和使用它。

编辑:

这是我的代码的一些精简版本来帮助解释。首先,带有文件输入的实际页面:

<form id="file_upload_form" method="post" enctype="multipart/form-data" action="last-id-test.php" target="upload_target">
<input name="file" id="file" size="27" type="file" /><br />
<input type="submit" name="action" value="Upload" /><br />
<iframe id="upload_target" name="upload_target" src="" style="width:100px;height:100px;border:1px solid #c9cfdd;"></iframe>
</form>

因此,当提交表单时,它使用 last-id-test.php 脚本进行实际的上传/插入数据库,但通过其目标 iframe 'upload_target' 来避免页面重新加载。

- 发生了一些 php 的事情,但我得到了上传的 mysqli_insert_id() 并将其发送回页面,它存储在“insertID”变量中:

function uploadDone() { //Function will be called when iframe is loaded
var returnedValues = frames['upload_target'].document.getElementsByTagName("body") [0].innerHTML.split('@');
insertID = returnedValues[0];
imgName = returnedValues[1];
makeImage =$('<img>').attr('src','images/listing-images/'+imgName);

makeImage.appendTo($('#image-preview'));
}

在这里,我还添加了图像的预览。

那么如何在文件输入的“更改”时将 insertID 变量发送到 php 脚本?

4

3 回答 3

0

我通过隐藏输入实现了这一点,动态生成并将其 value 属性设置为返回的 insertID 变量:

function uploadDone() { //Function will be called when iframe is loaded
var returnedValues = frames['upload_target'].document.getElementsByTagName("body")[0].innerHTML.split('@');
var insertID = returnedValues[0];
var imgName = returnedValues[1];
var makeImage =$('<img>').attr('src','images/listing-images/'+imgName);

makeImage.appendTo($('#image-preview'));

var makeInput = $('<input>').attr('type','hidden').attr('id','insertID').attr('value',insertID).attr('name','insertID');

makeInput.appendTo($('#file_upload_form'));
}
于 2013-02-15T23:39:45.660 回答
0

将其作为查询变量发送,例如/viewImage.php?image_id=123

在 PHP 中,您可以将这些查询变量读取为$_GET['image_id']

于 2013-02-15T22:51:16.777 回答
0

您是否使用ajax 提交表单?如果是这样,您可以使用 onclick 函数传递变量。

这可能会有所帮助 http://net.tutsplus.com/tutorials/javascript-ajax/submit-a-form-without-page-refresh-using-jquery/

于 2013-02-16T00:36:25.517 回答