2012-07-07 130 views
0

我對Twitter用戶有一個Javascript變量screenName。當他們連接到我的網站時,我想要一個php腳本在txt文件中寫下他們的名字。我怎麼能這樣做。我研究用AJAX編寫文件,但沒有運氣。如何將javascript變量更改爲PHP

<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等於 「」

在這個任何想法?

+0

你有短PHP標籤從php.ini中開啓?此外,如果你把php放入.js文件,它不會工作。 – Blaster 2012-07-07 08:26:56

+2

AJAX本身不會「寫入文件」,但可以使用AJAX將值發送到服務器上的腳本。這裏有一個類似的問題,有相關的代碼:http://stackoverflow.com/q/6139663/328193 – David 2012-07-07 08:27:06

+0

謝謝戴夫。 @Blaster我使用共享主機,所以我不確定。這是所有在PHP文件 – 2012-07-07 08:33:30

回答

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

+0

hrmmm。似乎沒有工作... – 2012-07-07 08:52:08

+2

@ BenThomson:定義「似乎沒有工作。」它以什麼方式不起作用?該值是否包含在服務器的POST中? (你可以用類似Firebug的東西來檢查它。)服務器端腳本是否從'$ _POST'數組獲取值?它失敗的地方在哪裏? – David 2012-07-07 08:56:14

+0

它明白了。太感謝了 – 2012-07-07 12:18:09