如何将PHP变量名称传递给Javascript函数

时间:2012-08-15 17:01:27

标签: php javascript html function variables

我有两个页面,一个名为upload-file.php,此页面将图像上传到数据库和我的文件夹中。

我的PHP页面看起来像这样。

    if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $file))  
    { 



        $insert=mysql_query("insert into match_item_image set item_id='".$_SESSION["session_temp"]."', image='".$name."',   adid='$adid'") or die(mysql_error());
$cc=mysql_insert_id();
        echo "success".$cc; 

我的其他页面包含一个javascript函数,可在上传时显示我的图像。 我遇到的问题是我需要在将图像名称上传到我的文件夹时更改图像名称。我能够更改图像名称,但是当我上传图像时,它显示为空白,因为当用户上传文件时,JavaScript函数正在寻找图像的原始名称。

这是该功能的一部分:

$(function()


{

    var btnUpload=$('#upload');
    var status=$('#status');
    new AjaxUpload(btnUpload, {
    action: 'upload-file.php',
    name: 'uploadfile',
    onSubmit: function(file, ext)
    {
     if (! (ext && /^(jpg|png|jpeg|gif)$/.test(ext))){ 
     // extension is not allowed 
    status.text('Only JPG, PNG or GIF files are allowed');
    return false;
    }status.text('Uploading...');
    },

    onComplete: function(file, response)
    {
        //On completion clear the status
        status.text('');
        //Add uploaded file to list
        var bb=response.substr(0,7)
        var idd=response.replace('success',' ');
        var idb =idd.replace(/^\s*|\s*$/g,'');
        if(bb==="success")
        {


            $('<span id='+idd+'></span>').appendTo('#files').html('<img src="upload/+file+" alt="" width="290" height="330" class="image1" /><br><a href="javascript:void(0)"    onClick="deleteFile('+idd+');"  class="image1"   > <span   style="font-weight:bold;   font-size:14px; color:red;" >   Delete     </span></a>').addClass('success');
        }
        else 
        {
            $('<span></span>').appendTo('#files').text(response).addClass('error');
        }

如果有人可以提供帮助,请告诉我。

我是javascript的新手。

您好,

我忘了添加上传图片的表单如下

<div id="upload" ><span>Upload Image<span></div><span id="status"></span>
<table><tr><td id="files"></td></tr></table>

我只需要知道如何让我的代码显示我保存在我的文件夹中的图像名称以及我上传后的图像名称而不是用户上传的原始图像名称,因为可能有其他用户上传了图像相同的名字,他们正在混淆。

感谢大家的帮助。我已经做了几个星期了,我似乎无法弄明白。我只是不想放弃这段代码,因为它正是我所需要的。

4 个答案:

答案 0 :(得分:1)

您可以将PHP直接写入您的javascript,如下所示:

<script>
alert('<?php echo $myVar; ?>');
</script>

或者,您可以创建AJAX调用以获取由PHP脚本处理的数据库变量。

基于您的代码的建议:

让你的onSuccess函数从PHP页面中为你提供文件的名称。您可以使用JSON执行此操作。请询问您是否需要帮助。

答案 1 :(得分:1)

而不是这个PHP代码:

    echo "success".$cc; 

您可以将结果输出为JSON-String,可以通过JavaScript轻松访问:

    header("Content-Type: application/json");
    echo "{
      \"status\" : \"success\",
      \"filename\" : "$file",
      \"id\" : $cc
    }";

而不是这个JavaScript部分

   //Add uploaded file to list
    var bb=response.substr(0,7)
    var idd=response.replace('success',' ');
    var idb =idd.replace(/^\s*|\s*$/g,'');

然后,您就可以像响应对象的属性一样访问结果的参数:

    var bb = response.status;
    var idd = response.id;
    var filename = response.filename;

有关详细信息,请参阅http://de.wikipedia.org/wiki/JSON。 您还可以使用PHP函数进行JSON输出:http://www.php.net/manual/de/function.json-encode.php

答案 2 :(得分:0)

echo '<script type="text/javascript">var myJSVar = '.$myPHPVar.';</script>';

答案 3 :(得分:0)

您需要让PHP脚本输出新名称,然后在JavaScript中使用它。如何继续提取响应取决于您的AJAX代码,我不熟悉您在示例中使用的内容。