在php代码的JavaScript变量中插入值
Inserting value in a JavaScript variable from php code
我正在尝试测试以下代码,以便将PHP代码中的值插入到我的javascript变量x 中
测试了PHP代码,它给出了正确的输出,但javascript中的警告框显示了这一点-
date_sub(curdate(),interval 1 day)和activity=1组,由具有b>1000〃$query=mysql_query($myquery);if(!$myquery){echo-mysql_error();die;}$data=array();for($x=0;$x<mysql_num_rows($query)$x++){$data[]=mysql_fetch_assoc($query);}//echo json_encode($data);echo";mysql_close($server)>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>Testing </title>
<script type="text/javascript" src="jquery-1.9.1.min.js"></script>
</head>
<body>
<?php
$username='user';
$password='pass';
$host='xx.xx.xx.xx';
$database='abc';
$server = mysql_connect($host, $username, $password);
$connection = mysql_select_db($database, $server);
$myquery = 'select code a,sum(fee) b from xyz where date > date_sub(curdate(),interval 1 day) and activity=1 group by code having b > 1000';
$query = mysql_query($myquery);
if ( ! $myquery ) {
echo mysql_error();
die;
}
$data = array();
for ($x = 0; $x < mysql_num_rows($query); $x++) {
$data[] = mysql_fetch_assoc($query);
}
//echo json_encode($data);
echo '<input type="hidden" name="myPhpValue" value="'. json_encode($data) . '">';
mysql_close($server);
?>
<script type="text/javascript">
function test(){
var x = document.getElementById("myPhpValue").value;
alert(x);
}
test();
</script>
</body>
</html>
echo '<input type="hidden" name="myPhpValue" value="'. json_encode($data) . '">';
然后:
var x = document.getElementById("myPhpValue").value;
您需要插入id="myPhpValue"
,因为您使用了"getElementById";
在html行中添加ID属性
echo '<input type="hidden" name="myPhpValue" value="'. json_encode($data) . '">';
用替换上述线路
echo '<input type="hidden" name="myPhpValue" id ="myPhpValue" value="'. json_encode($data) . '">';
您在html中插入的是一个值,而不是javascript代码。这样做:
<script type="text/javascript">
function test(){
var x = <?php echo json_encode($data); ?>;
alert(x);
}
test();
</script>
服务器配置问题
如果您在客户端获取php代码(查看源代码以确认),则php引擎在服务器上不工作。您应该检查php是否正确安装在服务器上,并设置为web服务器中php文件的处理程序。这取决于您的web服务器和操作系统。
代码问题
问题1:您的输出(echo)正在创建一个HTML元素,而不是javascript。因此,您应该为HTML转义内容-使用htmlspecialchars
而不是json_encode
问题2:您使用javascript document.getElementById
访问元素,但实际元素没有ID。因此需要将ID属性添加到html输入元素中。
解决方案:
阶段1:php输出html-使用htmlspecialchars
并添加id属性
echo '<input type="hidden" name="myPhpValue" id="myPhpValue" value="'. htmlspecialchars($data) . '">';
第二阶段:javascript访问html元素(这是从代码中获取的)。
var x = document.getElementById("myPhpValue").value;
旁注
您使用的是已弃用的mysql
扩展,应改用PDO
或mysqli
。
有许多关于SO和外部资源的讨论。
只有几个:
- 选择API-PHP手册
- MySQL、MySQLi和PDO之间有什么区别
- mysqli还是PDO——优缺点是什么
- 如何在windows.location href中插入变量
- 如何在字符串中的特定位置插入变量
- 在样式标记上插入变量
- 如何在第n个shild('')选择器中插入变量
- 如何在 JS 中插入变量
- Javascript:在字符串中插入变量
- 如何在url中插入变量
- 在javascript中以文本形式插入变量
- 如何使用纯JavaScript在内联CSS规则中插入变量
- 在Jquery中插入变量PHP
- Angular 2 -如何在组件中插入变量
- 如何在json url中插入变量
- 揭示模块模式:在哪里为模块访问插入变量
- 在Javascript中插入变量到另一个字符串变量中
- 如何在pug中插入变量字符串
- Phonegap -插入变量到数据库
- 如何使用Javascript加载文件的内容并在其中插入变量
- 在Spaw编辑器中插入变量
- 如何在 JS 中插入变量
- 如何在对象表示法 (JSON) 中插入变量字符串