Javascript 带字符串的未定义变量
在profuser变量中有字符串“nick” echo a href=“#”onclick=“prof('.$profuser.')”> @我在一次攻击之前删除了这个标志,因为它在堆栈溢出中破坏了整个代码 应发送至以下地址: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
<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) . '\')"