作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道每当我写的时候
$food = array('fruit'=>'apple', 'veggie'=>'tomato', 'bread'=>'wheat');
$text = print_r($food, true);
echo $text;
输出将是:
Array('fruit'=>'apple', 'veggie'=>'tomato', 'bread'=>'wheat')
但是当我尝试通过警告消息框显示它时,它没有显示任何内容。
我写的js alert代码如下:
echo "<script type='text/javascript'> alert('{$text}') </script>";
这是行不通的。当我为 $text 分配一个不同的字符串时,它就起作用了。似乎 alert() 不喜欢 $test 字符串的格式。 如果我这样写:
echo "<script type='text/javascript'> alert('Array('fruit'=>'apple', 'veggie'=>'tomato', 'bread'=>'wheat')') </script>";
我得到了正确的输出。所以不确定那里出了什么问题。
最佳答案
要将 PHP 数组转换为 javascript 数组,您必须使用 json_encode . JSON(JavaScript Object Notation)是一种基于 JavaScript 的编程语言之间的数据交换格式。由于JSON是一种文本格式,编码后的结果既可以作为字符串使用,也可以作为javascript对象使用。
$food = array('fruit'=>'apple', 'veggie'=>'tomato', 'bread'=>'wheat');
// show the array as string representation of javascript object
echo "<script type='text/javascript'> alert('".json_encode($food)."') </script>";
// show the array as javascript object
echo "<script type='text/javascript'> alert(".json_encode($food).") </script>";
// show the output of print_r function as a string
$text = print_r($food, true);
echo "<script type='text/javascript'> alert(".json_encode($text).") </script>";
一些调试技巧:
如果您想要更清晰的 print_r
输出(在 Windows 上),请使用:
function print_r2($val){
echo '<pre>'.print_r($val, true).'</pre>';
}
关于javascript - 如何在警告消息框中显示 print_r() 内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16576301/
我是一名优秀的程序员,十分优秀!