通过iframe发送js变量?

时间:2013-02-15 22:48:14

标签: php mysql variables iframe

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

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

所以要澄清:

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

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

    <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'来避免页面重新加载。< / p>

    -some 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'));
    }
    

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

    那么如何在文件输入'change'上将insertID变量发送到php脚本?

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分: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'));
}

答案 2 :(得分:0)

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

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