printf函数将变量传递给javascript

时间:2013-04-07 09:30:32

标签: php javascript

 <script language="JavaScript" type="text/javascript">
      function set(n) {

         alert(n);
        document.forms[0].submit();    
      }
    </script>


 $a='A0001';

 printf('<input type="button" value="Delete" onclick="set(%g);"/>', $a);

2 个答案:

答案 0 :(得分:2)

%g用于数字,您的数据包含数字,但也包含字母,因此您需要一个字符串。请改用%s

然后PHP将输出:

<input type="button" value="Delete" onclick="set(A0001);"/>

您没有名为A0001的变量,因此您传递的是undefined

据推测,您希望将值作为字符串,因此需要引用它。 json_encode函数会将数据结构转换为适合传递给JavaScript的内容。 htmlspecialchars函数会生成一些适合放置在HTML属性值中的文本。

printf('<input type="button" value="Delete" onclick="set(%s);"/>', htmlspecialchars(json_encode($a)));

答案 1 :(得分:0)

您需要使用%s,因为您的变量包含数字和字母数字字符。

请遵循以下代码:

<script language="JavaScript" type="text/javascript">
  function set(n) {
     alert(n);
    document.forms[0].submit();    
  }
</script>

<?php
$a='A0001';
printf('<input type="button" value="Delete" onclick="set(\'%s\');"/>', $a);
?>

这是经过测试的版本。