将参数从javascript传递给PHP函数

时间:2016-09-06 18:07:05

标签: javascript php ajax

我正在使用jqueryfiletree在Web服务器上显示文件的文件夹。我也有php来解析csv并在页面上显示它。如何将选定的jqueryfiletree文件传递给页面中的php,以便显示所选的csv?这就是我到目前为止所拥有的:

Javscript:

        <script src="jquery.js" type="text/javascript"></script>
    <script src="jquery.easing.js" type="text/javascript"></script>
    <script src="jqueryFileTree.js" type="text/javascript"></script>
    <link href="jqueryFileTree.css" rel="stylesheet" type="text/css"
    media="screen" />

    <script type="text/javascript">

        $(document).ready( function() {

            $('#fileTreeDemo_1').fileTree({ root: '../data/', script:     
'connectors/jqueryFileTree.php' }, function(file) { 
                alert(file);
                var file = "<?php echo $file;?>";

            });

        });
    </script>

</head>

<body>

    <h1>Select a file to view</h1>
    <div class="menuleftcontent">
        <div id="fileTreeDemo_1" class="demo"></div>
    </div>
</td><td>

PHP

    <div class="maincontent">
<?php
$row = 1;
if (($handle = fopen($file, "r")) !== FALSE) {

echo '<table border="1">';

while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
    $num = count($data);
    if ($row == 1) {
        echo '<thead><tr>';
    }else{
        echo '<tr>';
    }

    for ($c=0; $c < $num; $c++) {
        //echo $data[$c] . "<br />\n";
        if(empty($data[$c])) {
           $value = "&nbsp;";
        }else{
           $value = $data[$c];
        }
        if ($row == 1) {
            echo '<th>'.$value.'</th>';
        }else{
            echo '<td>'.$value.'</td>';
        }
    }

    if ($row == 1) {
        echo '</tr></thead><tbody>';
    }else{
        echo '</tr>';
    }
    $row++;
}

echo '</tbody></table>';
fclose($handle);
}
?>     
 </div>

1 个答案:

答案 0 :(得分:0)

到目前为止我可以看到两个问题。首先,你没有用分号来结束这一行的行:

var file = "<?php echo $file;?>";

(我已添加)。

另外,你的php中没有定义$ file。你不能尝试在javascript中定义它(我担心这是你想要做的事情吗?)。

最佳选择是发出一个AJAX请求,以便您可以将其发送到服务器端并在那里使用(这是您想要的?)。当然,您可以将数据回复到前端。

这是一个粗略的想法:

            $('#fileTreeDemo_1').fileTree({ root: '../data/', script:     
'connectors/jqueryFileTree.php' }, function(file) { 
              $.post('myphpfile.php', {file:file}, function(response){
                    // handle response
              });

            });

然后在php中,检查if(isset($_POST['file']))等帖子

相关问题