繁体   English   中英

如何将PHP(index.php文件)变量值传递给外部JAVASCRIPT .js文件?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM