在javascript中调用变量的正确语法

时间:2015-02-02 13:04:18

标签: javascript php

我需要帮助。

我有这段javascript代码:

           // Upload image to sever 
        document.getElementById("upload").addEventListener("click", function(){
            var dataUrl = canvas.toDataURL("image/jpeg", 0.85);
            $("#uploading").show();
            $.ajax({
              type: "POST",
              url: "html5-webcam-save.php",
              data: { 
                 imgBase64: dataUrl,
                 user: "example",
                 userid: " USERNAME "
              }
            }).done(function(msg) {
              console.log("saved");
              $("#uploading").hide();
              $("#uploaded").show();
            });
        });
    }, false);

在" USERNAME"我需要插入一个变量来调用发送照片的用户的用户名。

正确的语法是什么? 谢谢

2 个答案:

答案 0 :(得分:0)

  1. 如果您使用Cookie或会话:

    AJAX请求和常规页面请求之间没有区别。这只是对服务器的另一个请求。发出请求时,PHP会话可能仍处于活动状态,您可以从服务器端重用该用户名。同样适用于cookie。

    说完了:大部分时间你根本不需要在客户端获取和插入用户名,并通过ajax请求将其传递给服务器端。

  2. 如果您使用Cookie或会话:

    然后你需要一种机制来(a)将用户名或id插入/传递到页面中,以及(b)为ajax请求获取它(这是你的问题)。

    将数据从PHP传输到JS有多种方法。一种方法是使用隐藏的输入框并将用户名作为值插入,如另一个答案中所述。但您也可以插入用户名作为JS变量的值或将值填充到JSON元素中。一般来说,此问题在以前已得到彻底解答:How to pass variables and data from PHP to JavaScript?

    您可以在以下答案中找到有关如何从输入框中获取值的良好示例:https://stackoverflow.com/a/11563667/1163786 答案还包含如何使用jQuery Selector获取值,如ID,Class或Name。

    请记住,您需要确保这一点,因为有人可以在客户端的ajax请求中插入另一个ID或名称。

答案 1 :(得分:-1)

如果你真的想做你正在做的事情,这可能有所帮助。

我假设你有一个单独的js文件。

将您的USERNAME置于隐藏的输入中。

<input type="hidden" id="USERNAME" value="<? echo $USERNAME; ?>">

然后调用该值并将该值放在ajax代码中。

var USERNAME = $('#USERNAME').val();