Javascript 带字符串的未定义变量

Javascript 带字符串的未定义变量,javascript,php,ajax,Javascript,Php,Ajax,在profuser变量中有字符串“nick” echo a href=“#”onclick=“prof('.$profuser.')”> @我在一次攻击之前删除了这个标志,因为它在堆栈溢出中破坏了整个代码 应发送至以下地址: <script> function prof(profuser){ var xmlhttp=new window.XMLHttpRequest(); xmlhttp.open("GET", "user.php?user=" + profuser, tru

在profuser变量中有字符串“nick”

echo a href=“#”onclick=“prof('.$profuser.')”>

@我在一次攻击之前删除了这个标志,因为它在堆栈溢出中破坏了整个代码

应发送至以下地址:

<script>
 function prof(profuser){ 
var xmlhttp=new
 window.XMLHttpRequest(); xmlhttp.open("GET", "user.php?user=" +
 profuser, true); xmlhttp.send(); } 
</script>
但是这段代码告诉我字符串“nick”没有定义。 谁能告诉我这有什么问题吗? 如果此代码中有更多错误,请告诉我。

试试这个

onclick="prof('<?php echo $profuser; ?>')"
这是因为你可能在你的源代码中得到了类似的东西

onclick="prof(nick)";

nick是一个字符串,不是javascript变量,它将是未定义的

作为错误,nick被视为未定义变量。应将其视为字符串,因此需要添加引号:

onclick="prof(\'' . addslashes($profuser) . '\')"

根据@p.s.w.g的说法,您应该使用从php变量中转义引号,以防出现任何;)

open
的第一个参数应该是字符串,例如
xmlhttp.open('GET',…)
。另外,当您试图在
onclick
属性中将变量传递给
prof
时,您需要将变量正确地作为JavaScript字符串引用/转义,例如
onclick=“prof('.json_encode($profuser)。”
什么告诉您“nick未定义”?现在还不清楚你在说什么。onclick说它没有定义,我想,但我在调试方面是新手。如果$profuser是由php生成的,那么你应该使用onclick=“prof(“”)”我的onclick已经是php中echo内部的链接了。很抱歉,我没有发布它,但是代码太多了。我的onclick已经是php中echo中的一个链接了。很抱歉,我没有发布它,但是代码太多了。如果代码太多,它需要简化。不管怎么说,如果不看看你是怎么得到onclick的,我很难帮你。我会在1秒内编辑我的第一篇文章。你需要引用nick的话,天哪,我不能正确编辑文章,代码一分为二,在这里一分为二看不到,但我删除了一些符号并接受了。但是我已经添加的引号有什么问题吗?您的单引号是由php在服务器端使用的,客户端也需要使用。谢谢!!你帮了大忙!这将一直有效,直到你有一位名叫
o'neill
的教授。您还需要正确地转义该值。
echo 'onclick="prof(\''.$profuser.'\')"';
onclick="prof(nick)";
onclick="prof(\'' . addslashes($profuser) . '\')"