【问题标题】:How to change a javascript variable to PHP如何将 javascript 变量更改为 PHP
【发布时间】:2012-07-07 08:23:53
【问题描述】:

我有一个 Javascript 变量 screenName 供 Twitter 用户使用。当他们连接到我的网站时,我想要一个 php 脚本将他们的名字写在一个 txt 文件中。我怎么能这样。我研究过用 AJAX 编写文件,但没有运气。

<script type="text/javascript">

twttr.anywhere(function (T) {
    var currentUser,
        screenName,
        profileImage,
        profileImageTag;
    if (T.isConnected()) {
        currentUser = T.currentUser;
        screenName = currentUser.data('screen_name');
        $('#twitter-connect-placeholder').append("<p style='color:white;text-shadow:none;'>Howdy " +" " + screenName + "!");
        var screenName = "<?= $js ?>";
    } 
});
</script>

<?php
$check = $_GET['track'];


if ($check == '1') {
    $fp = fopen('data.txt', 'a');
    fwrite($fp, "{$js}");
    fclose($fp);
}
?>

如果查看源screenName等于“”

对此有何想法?

【问题讨论】:

  • 您是否从 php.ini 打开了短 php 标签?此外,如果您将 php 放入 .js 文件中,它将无法正常工作。
  • AJAX 本身不会“写入文件”,但您可以使用 AJAX 将值发送到服务器上的脚本。这是一个具有相关代码的类似问题:stackoverflow.com/q/6139663/328193
  • 谢谢戴夫。 @Blaster 我使用共享主机,所以我不确定。这都在一个 php 文件中
  • 您是问如何将变量发送到服务器还是如何将其写入文件?
  • 我想将变量发送到服务器

标签: php javascript ajax twitter


【解决方案1】:

为了解决这个问题,您需要了解 PHP 是在服务器端执行的,页面发送给用户之前,而 Javascript 是在客户端执行的侧,在用户的浏览器中,即 PHP 代码之后。显然,您需要事件以相反的顺序发生。示例实现如下:

使用jQuery,你可以做到:

if (T.isConnected()) {
    var currentUser = T.currentUser;
    var screenName = currentUser.data('screen_name');
    $.post(
        '/writename.php',      // request url
        {'name' : screenName}, // POST data
        function() {           // optional callback
            alert("done!");
        }
    );
}

并且,在您的writename.php

if ($_POST['name']) {
    $fp = fopen('data.txt', 'a');
    fwrite($fp, $_POST['name']);
    fclose($fp);
}

【讨论】:

  • @BenThomson:定义“似乎不起作用”。它以什么方式不起作用?该值是否包含在发往服务器的 POST 中? (您可以使用 Firebug 之类的工具进行检查。)服务器端脚本是否从 $_POST 数组中获取值?哪里失败了?
猜你喜欢
  • 1970-01-01
  • 2010-12-12
  • 2023-03-23
  • 1970-01-01
  • 2011-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多