[英]How to pass PHP (index.php file ) Variable value to external JAVASCRIPT .js File?
实际上,这段代码写在index.php
文件中,但现在我想将此javascript数组值传递给外部js文件。
<?PHP
$qry2 = mysql_query("SELECT table_no FROM table_info");
while($res2 = mysql_fetch_array($qry2))
{
static $i = 0;
$i++;
$reg_table[$i] = $res2['table_no'];
}
?>
<script>
var bookedSeats = new Array();
<?php foreach($reg_table as $key => $val)
{ ?>
bookedSeats.push('<?php echo $val; ?>');
<?php }?>
</script>
我希望bookedSeats
变量位于外部table.js
文件中。
您在那里有jQuery 标记 ,因此我将为您提供这个...使用Ajax:
test.php
<?php
// Handle Ajax Request
if (isset($_GET['loadData']))
{
// Query your db here, im building dummy data
$results = array();
for ($i = 0; $i < 10; $i++) {
$results[] = 'Data '. $i;
}
// Return Data
exit(json_encode($results));
}
?>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript">
// Load Data Via Ajax
$.getJSON("test.php?loadData", function(bookedSeats)
{
console.log(bookedSeats);
});
</script>
页面加载后,我们得到如下结果:
<script>
var bookedSeats = new Array();
<?php foreach($reg_table as $key => $val)
{ ?>
bookedSeats.push('<?php echo $val; ?>');
<?php }?>
</script>
这可以大大简化并不受XSS的影响:
<script>
var bookedSeats = <?php echo json_encode(array_values($reg_table)); ?>;
</script>
现在,您可以参考bookedSeats
在外部.js文件,但前提是这个内嵌脚本已经被放置后文件被运行。 换句话说,将:
<script src="external.js"></script>
后 <script>...<?php ... ?>...</script>
是好的,但在此之前把它仅仅是好的,如果你正在推迟其执行-它只是更安全后把它;)
即使Latheesan Kanes的解决方案是正确的,我最终还是会为您提供替代解决方案。
如果您有权访问table.js文件中Javascript对象中的构造函数,那么我的实例就是一个简单的例子。
<script>
var bookedSeats = new Array();
person=new Object();
<?php foreach($reg_table as $key => $val)
{
// here a javascript object
?>
person.firstname="John"; // of course replace firstname and John by your informations
<?php }?>
// then call table.js constructor
var objectInTableDotJS = new YourConstructor(person); // now in table.js you need to make modification :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.