1

我有两个单独的页面,一个页面是上传文件的地方,另一个页面显示信息。

在 imageupload.php 页面中,我在下面有这个会话:

$_SESSION['fileImage']['name'] = $_FILES['fileImage']['name'];

我还有一个 javascript 函数,它回调 javascript 函数:

<script language="javascript" type="text/javascript">window.top.stopImageUpload();</script> 

现在在一个单独的页面(QandATable.php)上,我有一个 javascript 函数,但我的问题是如何在 javascript 函数中调用上面的 $_SESSION 代码,以便将其附加到 $('.list')?

下面是javascript函数:

 function stopImageUpload(success){

var result = '';
if (success == 1){
result = '<span class="msg">The file was uploaded successfully!</span><br/><br/>';
$('.listImage').append('<br/>');
          }
else {
result = '<span class="emsg">There was an error during file upload!</span><br/><br/>';
          }

return true;

    }
4

4 回答 4

2

你不能,因为 $_SESSION 是一个服务器端变量,但你可以通过它来访问它。

对于整个会话变量

<script type="text/javascript" >
  var session = <?php echo json_encode($_SESSION); ?>;
</script>

对于会话中的特定变量。

<script type="text/javascript" >
  var session_var = <?php echo json_encode($_SESSION['VAR_NAME']); ?>;
</script>

现在你有了带有该信息的名为 session 的 js 变量。然而,在大多数情况下,将所有这些信息输出到公共页面是不可取的。

于 2012-04-20T21:57:37.647 回答
2

会话变量存储在服务器上。JavaScript 在客户端执行,因此它对服务器端一无所知。它只知道你传递给它的东西。

要将变量传递给 javascript,请使用 ajax 请求,或者简单地输出值:

<script>
var sesionValue = <?=json_encode($_SESSION['value']);?>;
</script>
于 2012-04-20T21:57:57.663 回答
1

您应该考虑使用 JQuery,因为它使这些类似 AJAX 的任务变得更加容易。

请参阅我今天刚刚编写的函数,以执行与您所要求的类似的操作。

这需要一些 PHP 输出(在success调用的部分中返回ajax()。它采用 JSON 格式,与 PHP 和 JavaScript 兼容(JSON:JavaScript Object Notation)。

function viewClientDetails(id) {
    var clientParams;
    clientParams.clientID = id;
    $.ajax({
        url: BASE_URL + '/clients/get-client-details.php',
        type: 'POST',
        data: clientParams,
        dataType: 'JSON',
        success: function(myClient) {
            var name = myClient.name;

            $('td#name').html(name);

        },
        error: function(e) {
            console.log(e.responseText);
        }
    })
}

在我的 PHP 文件(称为/clients/get-client-details.php)中,我有这样的内容:

<?php
...
$myClient = array('name' => 'Mr Foobar');
print json_encode($myClient);

?>

这只是将我的 PHP 对象写入 JSON 格式。

在上面的JS代码中,代码将部分 JSON 数据插入到一个 HTML table-data 元素中,该元素的 CSS 选择器 ID 为#name,代码如下:$('td#name').html(name);

抱歉,如果这让你更加困惑,我想我会展示一个你可以尝试一段时间的例子..

这可能会对你有所帮助......继续尝试,你会到达那里:)

于 2012-04-20T22:07:40.943 回答
0

你不能。$_SESSION是一个 PHP 变量,并且该代码在服务器端运行。

您需要将该值作为 Javascript 变量存储在 PHP 文件的输出中,然后在 Javascript 中访问该变量。

于 2012-04-20T21:57:51.033 回答