实际上这段代码是在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
文件中。
答案 0 :(得分:0)
你有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>
当页面加载时,我们得到如下结果:
答案 1 :(得分:0)
<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>
您现在可以在外部.js文件中引用bookedSeats
,但在此内联脚本放置后 换句话说,放:
<script src="external.js"></script>
{/ 1>}之后的,但是之前将放在之前只是推迟执行 - 只需将其放在后面就更安全了;)
答案 2 :(得分:0)
即使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 :)