通过onclick将变量发送到javascript时未捕获的参考错误

时间:2019-06-11 09:22:00

标签: javascript php jquery html

我试图将php变量发送给javascript函数,以便我可以使用Ajax发布它,但是我一直收到错误:Uncaught ReferenceError:未定义“用户名”。(出于隐私原因,更改了用户名) 我正在画空白,因为问题在以前的功能中可以正常工作。我做错了什么

我曾尝试将用户名转换为字符串,并清除语法错误但无济于事。

   <?php
    foreach($arrlist as $farr){
    $onlineusersquery = mysqli_query($con,"SELECT * FROM users WHERE 
    username = '$farr' AND online = '2'");
    $onlineusers = mysqli_fetch_assoc($onlineusersquery);
    if(in_array($farr,$onlineusers)){
    $recipient = (string)$farr;
    print "<span class=openclick style=cursor:pointer;margin- 
   left:2vmax;position:relative; onclick=friendinteract(".$num.")>".$farr." 
   </span></br>";
    print"<div class=friendinteract>";
    print "<span class=message onclick=message(".$num.") style=margin- 
   left:3vmax;cursor:pointer;position:relative;color:#fffff1;>Message</span> 
   </br>";
    print "<span class=chat onclick=chat(".$recipient.") style=margin- 
   left:3vmax;cursor:pointer;position:relative;color:#fffff1;>Chat</span>";
    print"</div>";
    $num++;
     }
    }
    ?>
    <script type="text/javascript">
    function chat(recipient){
    var username = recipient;
    $.post("chat.php", {usernumber: username}, function(result){
     console.log(result)
     });
    }
    </script>

我希望将变量发送到函数,以便可以发布该变量,但是我收到未捕获的ReferenceError:未定义“用户名”

1 个答案:

答案 0 :(得分:-1)

如果这不起作用,您可以使用jQuery

用以下内容替换范围:

"<span class='chat' data-user='".$recipient."' style='margin-      left:3vmax;cursor:pointer;position:relative;color:#fffff1;'>Chat</span>";

在jquery中使用

$('.chat').on('click',function(){

    var username= $(this).attr(data-user);

$.post("chat.php", {usernumber: username}, function(result){
 console.log(result)
 });


    });