简体   繁体   English

将php加密值传递到javascript参数

[英]passing php encrypted value into javascript parameter

<script>   
function dinner(x,y)
{
  alert(x,y);
}
</script>
<?php
$x='o7Y2RUgB3wuKsY4QshuARu/Egj4eQBndOoEj70B3GxQ=';  
$y='12.30'
?>
<a onclick="dinner( <?php echo $x;?>,<?php echo $y;?>);" href="#" style="text-    decoration: none;">click me</a>

I am trying to pass encrypted php value(x) into a Javascript function. 我正在尝试将加密的php值(x)传递给Javascript函数。 But I can't get any value in javascript function. 但是我无法在javascript函数中获得任何价值。 I can't understand what is the error? 我不明白这是什么错误?

您应该添加引号:

<a onclick="dinner( '<?php echo $x;?>', '<?php echo $y;?>');" href="#" style="text-decoration: none;">click me</a>

I have updated your code: 我已经更新了您的代码:

   <script>   
     function dinner(x,y)
     {
      alert(x + "" + y);
     }
    </script>
    <?php
    $x='o7Y2RUgB3wuKsY4QshuARu/Egj4eQBndOoEj70B3GxQ=';  
    $y='12.30'?>
    <a onclick="dinner( '<?php echo $x;?>','<?php echo $y;?>');" href="#" style="text-    decoration: none;">click me</a>

Keep in mind that you are passing strings to the javascript function, so you should place the strings between quotes. 请记住,您正在将字符串传递给javascript函数,因此应将字符串放在引号之间。

The problem is that when the php script compiles, it sends this 问题是当php脚本编译时,它将发送此

<a onclick="dinner( o7Y2RUgB3wuKsY4QshuARu/Egj4eQBndOoEj70B3GxQ=,12.30);" href="#" style="text- decoration: none;">click me</a>

And then browser tries to use variable named o7Y2RUgB3wuKsY4QshuARu/Egj4eQBndOoEj70B3GxQ= and obviously fails. 然后浏览器尝试使用名为o7Y2RUgB3wuKsY4QshuARu/Egj4eQBndOoEj70B3GxQ=变量,显然失败。

To fix this issue you have to enclose your echo 's with quotes like this 要解决此问题,您必须将echo括在这样的引号中

dinner( '<?php echo $x;?>','<?php echo $y;?>');

Don't forget to check browser console, there is always useful info. 不要忘记检查浏览器控制台,总是有有用的信息。

This would be a good way, taking care of all necessary escaping: 考虑到所有必要的转义,这将是一个好方法:

$clickHandler = sprintf(
  'return dinner(%s, %s)', 
  json_encode($x), 
  json_encode($y)
);

?>
<a href="#" onclick="<?php echo htmlspecialchars($clickHandler, ENT_QUOTES, 'UTF-8'); ?>" style="text-decoration:none;">click me</a>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM