2012-05-25 50 views
3

我需要一點幫助,我試圖將一個js變量分頁成一個在php中使用file_get_contents解析的url。我不知道從哪裏開始做到這一點。將js變量傳遞給php字符串

<script type="text/javascript"> 
var js_variable = appl+goog+fb+mfst+nflx; 
</script> 

<?php 
$ticker = js_varable_here; 
$file = file_get_contents('http://finance.yahoo.com/d/quotes.csv?s=$ticker&f=soac1p2ghjkj1re'); 

?> 

任何意見是讚賞,就像我說這是在黑暗中即時通訊。

+6

php在服務器上運行,js駐留在客戶端。首先它得到服務器,而不是客戶端。你不能那樣傳球。雖然 – Jashwant

+1

可以使用ajax來獲得你想要的內容 – aurel

+2

這個確切的問題不斷出現...... – Imp

回答

1

這是一個使用jQuery的例子。

的Javascript:

<script type="text/javascript"> 
    var js_variable = appl+goog+fb+mfst+nflx; 
    $.post("/somephp.php", {ticker: js_variable}, function(data) { 
    // returned from php 
    }); 
</script> 

PHP:

<?php 
    $ticker = $_POST['ticker']; 
    $file = file_get_contents("http://finance.yahoo.com/d/quotes.csv?s=$ticker&f=soac1p2ghjkj1re"); 
?> 
+0

感謝您的評論。修復了帖子。 – user1418338

+0

所以PHP部分會進入somephp.php文件?只是所以我理解正確 – Suzed

+0

@Suzed是的。在這個例子中,這就是PHP會去的地方。如果您將html和php混合,您也可以將javascript中的url更改爲「./」。 (這意味着你應該在PHP部分添加一些邏輯,以便它檢測到一個post請求。) – user1418338

1

擴展在什麼Jashwant說...

PHP是一種服務器片面的語言,它確實在幕後工作。 Javascript是客戶端,它在本地客戶端的機器上運行和執行代碼(即通過瀏覽器)。

但是,您可以使用AJAX(異步JavaScript和XML),這樣本地客戶端就可以向服務器發送HTTP請求,而無需重新加載當前頁面。例如,您可以使用AJAX將變量的內容發送到服務器。

爲了方便使用,您應該查看jQuery有關ajax調用的方法。參見:http://api.jquery.com/jQuery.ajax/

希望它運作良好。

1

繼承人你如何能做到這與jquerys後(),然後返回JSON,您可以按照您的預期輸出中的構建結果PHP部分或你可以使用jQuery來循環每個()通過結果。

<?php 
if($_SERVER['REQUEST_METHOD']=='POST' 
    && isset($_SERVER['HTTP_X_REQUESTED_WITH']) 
    && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest'){ 

    if(!empty($_POST['s'])){ 

     $ticker = $_POST['s']; 
     $file = file_get_contents('http://finance.yahoo.com/d/quotes.csv?s='.$ticker.'&f=soac1p2ghjkj1re'); 

     header('Content-Type: application/json'); 
     echo json_encode(array('result'=>$file)); 
    }else{ 
     echo 'Request not allowed!'; 
    } 
    die; 
} 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title></title> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" charset="utf-8"></script> 
<script> 
var js_variable = "appl+goog+fb+mfst+nflx"; 

$.post('this_script.php',{s: js_variable}, function(data) { 
    $('#divResult').replaceWith('<div id="divResult">'+ data.result +'<div>'); 
}); 
</script> 
</head> 
<body> 

<div id="divResult"><div> 
</body> 
</html> 
+0

我測試了你的代碼只是爲了看看是否有很大的差異,它似乎沒有工作,數據回來,因爲undefined – Suzed

+0

它的工作對我來說,你有沒有在jQuery文章中更改** this_script.php **? –

+0

也應該看看$ file是否包含任何內容。也許FGC沒有啓用。 –