【问题标题】:How do I pass PHP variable names to Javascript function如何将 PHP 变量名传递给 Javascript 函数
【发布时间】:2012-08-15 17:01:27
【问题描述】:

我有两个页面,一个叫做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>

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

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

【问题讨论】:

    标签: php javascript html function variables


    【解决方案1】:

    您可以像这样将 PHP 直接写入您的 javascript:

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

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

    根据您的代码推荐:

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

    【讨论】:

    • 他正在谈论从 php 脚本获得的响应中使用 ajax 传递文本。
    • @MihaiIorga:我想我明白了。我建议他让 PHP 文件返回一个 JSON 字符串,然后将值从那里获取到 JS 中。
    • 永远不要将 PHP 中的原始数据嵌入到 JavaScript 代码块中。您可能会引入语法错误并杀死整个脚本。始终为此使用 json_encode。
    • 谢谢大家。我真的很感谢你的帮助。下班回家后,我将尝试您的建议。
    • @user1477388 如何让我的 onSuccess 函数从我的 php 页面中给我文件名?
    【解决方案2】:

    而不是这个 PHP 代码:

        echo "success".$cc; 
    

    您可以将结果输出为 JSON 字符串,可以通过 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

    【讨论】:

      【解决方案3】:
      echo '<script type="text/javascript">var myJSVar = '.$myPHPVar.';</script>';
      

      【讨论】:

      • 他正在谈论从 php 脚本获得的响应中使用 ajax 传递文本。
      • 永远不要将原始 php 数据嵌入到 javscript 代码块中。您可能会引入 JS 语法错误并杀死整个脚本。总是使用 json_encode()。
      • 完全同意...我只是在回答“如何从 PHP 传递 javascript 变量”这个简单问题...所有数据都应该来自服务器的响应
      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 2015-06-08
        • 2015-07-10
        • 1970-01-01
        • 1970-01-01
        • 2019-07-22
        • 2019-07-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多