我们可以从php文件中传递一个包含jquery $ .get()中url的变量

时间:2011-08-15 15:40:20

标签: php javascript jquery ajax

您好我有一个使用jquery $ .get()从.csv文件创建的图表。但目前我将硬编码文件名作为第一个参数传递给我的get()方法。我的函数位于一个名为index.js的文件中,就像这样

    $(document).ready(function() { 
        $.get('myproject.csv', function(data) { ..... } 
    ....... });

但我想要的是传递一个包含文件名的变量,以便它可以有任何文件名而不是'myproject.csv'

    $.get($filename, function(data) { 

其中$ filename可以是传递的任何文件名。我对jquery并不太了解,所有这些都不太确定。

现在最重要的是我有一个.phtml文件,我将这个javascript文件合并为内联脚本。所以我不知道如何将这个.phtml文件中的变量传递给这个javascript文件。 我的.phtml文件:

      <head>.......</head>
      <body>
      <script type="text/javascript" src="/PFFd02/public/media/js/modules/appone/index/index.js"></script>      // this is where i need to pass my variable. 
      ...........
      </body>

任何帮助???

3 个答案:

答案 0 :(得分:2)

这应该有效:

var filename=<?=json_encode($filename)?>;
$.get(filename, function(data) { 

这会将Javascript变量filename设置为PHP变量$filename的值,并调用$.get(filename)

答案 1 :(得分:1)

$.get(<?php echo json_encode($filename) ?>, function(data) {

使用json_encode可确保文件名中的任何JS元字符都不会“破坏”您的脚本。

答案 2 :(得分:0)

谢谢大家。我想出了一个简单的方法将变量从php文件传递给我的js。

我做的是在控制器文件中创建了一个视图变量,并为其分配了一个包含div标签的字符串,如下所示:

    $this->view->filename = "<div id=\"filename\" style=\"display:none\">".$file."</div>";

其中$ file是包含我的文件名的变量,我必须将其传递给javascript。现在,在我看来,我做了类似的事情:

    <?php echo $this->filename ?>

这使得文件名可用于我的视图,我必须运行该javascript。然后在我的javascript函数中我初始化了一个这样的变量:

        var file = $('#filename').text();
        $.get(file, function(data) {

所以我得到了从php文件传递到我的javascript函数的变量。